一元运算符“-”后缺少表达式
missing expression after unary operator '-'
我在 PowerShell v5.0 中编写了一个 PowerShell 脚本,我可以从批处理文件中毫无问题地执行该脚本。但是,当我在 Windows 2008 中使用 PowerShell v1.0 执行批处理文件时,出现错误 'missing expression after unary operator '-'.
谁能告诉我是什么导致了这个错误?
这是我的批处理文件中的代码
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%SAP_Shell_Script.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";
这不能保证能解决您的问题,但可能会引导您找到解决方案:
首先 - 如果可能 - 值得考虑更新非常过时的 v1.0 PowerShell 安装(Windows Server 2008 附带)。
因为您已经排除了问题不是脚本的 内容,这意味着 PowerShell 的 CLI 语法 必须在以后的版本中更改:
- 听起来您使用的参数名称至少有一个未被 v1 中的
powershell.exe
识别,导致它和所有后续参数被解释为 作为 PowerShell 命令(它是 -
前缀 - 然后被解释为 运算符 - 导致错误消息)。
故障处理如下:
以powershell.exe -?
开头,以显示您的版本支持哪些参数。
从一个最小的命令开始,然后尝试一个一个地添加参数。
以下最小命令假定您已使用 Set-ExecutionPolicy
至少允许 当前会话 (进程)执行脚本;在以后的 PowerShell 版本中,您将按以下方式执行 - 我不知道它是否适用于 v1.0:
Set-ExecutionPolicy -Force -Scope Process -ExecutionPolicy Bypass
最小命令:
PowerShell "& '%PowerShellScriptPath%'"
请注意,与您的原始命令(在 v5 中有效)一样,假设变量 %PowerShellScriptPath%
的值本身不包含 '
个字符。
我在 PowerShell v5.0 中编写了一个 PowerShell 脚本,我可以从批处理文件中毫无问题地执行该脚本。但是,当我在 Windows 2008 中使用 PowerShell v1.0 执行批处理文件时,出现错误 'missing expression after unary operator '-'.
谁能告诉我是什么导致了这个错误?
这是我的批处理文件中的代码
@ECHO OFF
SET ThisScriptsDirectory=%~dp0
SET PowerShellScriptPath=%ThisScriptsDirectory%SAP_Shell_Script.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";
这不能保证能解决您的问题,但可能会引导您找到解决方案:
首先 - 如果可能 - 值得考虑更新非常过时的 v1.0 PowerShell 安装(Windows Server 2008 附带)。
因为您已经排除了问题不是脚本的 内容,这意味着 PowerShell 的 CLI 语法 必须在以后的版本中更改:
- 听起来您使用的参数名称至少有一个未被 v1 中的
powershell.exe
识别,导致它和所有后续参数被解释为 作为 PowerShell 命令(它是-
前缀 - 然后被解释为 运算符 - 导致错误消息)。
故障处理如下:
以
powershell.exe -?
开头,以显示您的版本支持哪些参数。从一个最小的命令开始,然后尝试一个一个地添加参数。
以下最小命令假定您已使用
Set-ExecutionPolicy
至少允许 当前会话 (进程)执行脚本;在以后的 PowerShell 版本中,您将按以下方式执行 - 我不知道它是否适用于 v1.0:Set-ExecutionPolicy -Force -Scope Process -ExecutionPolicy Bypass
最小命令:
PowerShell "& '%PowerShellScriptPath%'"
请注意,与您的原始命令(在 v5 中有效)一样,假设变量 %PowerShellScriptPath%
的值本身不包含 '
个字符。