使用参数和管道执行命令

时间:2012-10-29 04:50:10

标签: powershell

我正在尝试在PowerShell脚本中执行以下命令

C:\PATH TO GPG\gpg.exe --output OUTPUTFILE.csv --batch --passphrase-fd 0 --decrypt C:\PATH TO INPUT\INPUTFILE.txt < C:\PATH TO PASS\Passphrase.txt

当我将命令的各个部分分配给变量,然后将它们组合在一个命令varible中并尝试执行它,如下所示:

$decryptCommand = "${gpg} --output ${dateStamp}.csv --batch --passphrase-fd 0 --decrypt ${fileName} < ${passphraseFile}"
&$decryptCommand

我收到以下错误:

The term 'XXXX' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

我试图在单引号和双引号中包围命令的各个部分,但我尝试过的任何内容似乎都无法正常工作。

我是否应该从PowerShell脚本执行此命令?

1 个答案:

答案 0 :(得分:0)

脚本有几个问题。首先,您不需要使用{},secon包围变量 - 您必须单独传递参数,如下所示:

&$gpg --output $dateStamp.csv --batch --passphrase-fd 0 --decrypt $fileName < $passphraseFile

我唯一不确定的是<符号。可能是您需要使用'

来转义它