Powershell从变量运行命令

时间:2018-09-20 07:07:05

标签: powershell command-line

我正在尝试运行一个以字符串形式存储在变量中的命令,但是当我尝试使用“ Invoke-Command”运行它时,系统会告诉我它必须是“ ScriptBlock”而不是字符串。 命令是:

ASIMPORT.EXE -rexactdb-01 -DTEST001 -u -~ I -URL X:\test.xml -Tglentries -OPT18 –Oauto

我正在尝试将其运行为:

Invoke-Command -ScriptBlock $command

尝试使用“ ScriptBlock”和不使用“ ScriptBlock”,总是会得到相同的错误。谷歌搜索它,老实说我不知道​​我应该如何解决该解决方案,所以任何建议都值得赞赏。

3 个答案:

答案 0 :(得分:1)

将变量定义为脚本块。

喜欢:

$ScriptBlock = [ScriptBlock]::Create("get-process")

Invoke-Command -ScriptBlock $ScriptBlock

答案 1 :(得分:1)

尝试以下

Invoke-Command -ScriptBlock {&$command}

答案 2 :(得分:0)

您需要Invoke-Expression而不是Invoke-Command

$command = 'svn help patch'
Invoke-expression $command

请参阅cmdlet说明:

  

Invoke-Expression cmdlet评估或运行指定的字符串作为   命令并返回表达式或命令的结果。不带   Invoke-Expression,在命令行提交的字符串是   返回(回显)不变。