我正在尝试运行一个以字符串形式存储在变量中的命令,但是当我尝试使用“ Invoke-Command”运行它时,系统会告诉我它必须是“ ScriptBlock”而不是字符串。 命令是:
ASIMPORT.EXE -rexactdb-01 -DTEST001 -u -~ I -URL X:\test.xml -Tglentries -OPT18 –Oauto
我正在尝试将其运行为:
Invoke-Command -ScriptBlock $command
尝试使用“ ScriptBlock”和不使用“ ScriptBlock”,总是会得到相同的错误。谷歌搜索它,老实说我不知道我应该如何解决该解决方案,所以任何建议都值得赞赏。
答案 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,在命令行提交的字符串是 返回(回显)不变。