【问题标题】:cmd call to powershell "you must provide a value expression on the right hand side of the '-' operator"cmd调用powershell“您必须在'-'运算符的右侧提供一个值表达式”
【发布时间】:2013-04-15 12:17:25
【问题描述】:

在我继续之前,我对 Powershell 的体验只有 2 天。

我正在尝试从命令行调用 powershell 脚本,并在命令中添加了四个参数。 powershell 脚本只是清理一个 CSV 文件,并在清理的每个阶段制作该文件的副本。

脚本中的变量abcd与新文件名相关(包括完整地址)。

PowerShell 脚本

param(
  [string]$a,
  [string]$b,
  [string]$c,
  [string]$d


 )



Get-Content $a | ForEach-Object { $_ -replace """""""""""","""""" } | Set-Content $b -Force
Get-Content $b | ForEach-Object { $_ -replace """""""","""" } | Set-Content $c -Force
Get-Content $c | ForEach-Object { $_ -replace """""","" } | Set-Content $d -Force

命令脚本

下面的命令脚本是我试图在cmd 中运行的(注意:我已经取出了真实的地址)。

powershell.exe '\\somefileaddress\CleanData.ps1' 
-a "\\someaddress\DrFA-C.csv" 
-b "\\someaddress\DrFA-C_2.csv" 
-c "\\someaddress\DrFA-C_3.csv"
-d "\\someaddress\DrFA-C_4.csv"

我得到的错误信息是:

您必须在“-”运算符的右侧提供一个值表达式。

【问题讨论】:

    标签: variables powershell command call


    【解决方案1】:

    听起来这个答案并没有专门解决这个问题,但以防万一有一天它对某人有所帮助:

    在安装了 PowerShell v2(Windows 7 的默认版本)的 Windows 7 计算机上运行为 PowerShell v5 编写的脚本时出现此错误消息。这是一个非常复杂的行,而且它的编写方式不能很好地与旧版本的 PowerShell 配合使用。

    在 PowerShell 中运行此代码:$PSVersionTable.PSVersion.Major,如果它返回 2(或者甚至可能是 3?),您可以尝试通过安装 this Windows update. 来升级您的 PowerShell 版本

    【讨论】:

      【解决方案2】:

      我很确定问题不在于您的脚本,而在于您如何调用它。这对我有用(为了清楚起见,没有插入换行符):

      powershell.exe -Command "& '\\somefileaddress\CleanData.ps1' 
      -a '\\someaddress\DrFA-C.csv' 
      -b '\\someaddress\DrFA-C_2.csv' 
      -c '\\someaddress\DrFA-C_3.csv' 
      -d '\\someaddress\DrFA-C_4.csv'"
      

      【讨论】:

        【解决方案3】:

        您正在使用双引号,这使其成为可扩展的字符串(解析器将在字符串中查找 Powershell 运算符,并尝试在解析期间调用这些运算符)。 - 是一个 Powershell 运算符,因此它认为您正在尝试进行某种减法运算。

        切换到单引号,告诉它您希望该字符串按字面意思解释。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          • 2018-05-18
          • 1970-01-01
          相关资源
          最近更新 更多