Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell启动进程参数列表未正确处理冒号_Powershell - Fatal编程技术网

Powershell启动进程参数列表未正确处理冒号

Powershell启动进程参数列表未正确处理冒号,powershell,Powershell,因此,我尝试运行以下代码段: 启动进程-文件路径“c:\support\mbbr.exe”-参数列表“register”,–键:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE'-等待-非Windows 但是,它在冒号处停止处理参数,因为它将其视为保留字符。当我尝试使用“”转义时,它将转义字符视为普通字符,不允许我转义: Error: –key is an invalid option. The syntax of register command is: register [

因此,我尝试运行以下代码段:

启动进程-文件路径“c:\support\mbbr.exe”-参数列表“register”,–键:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE'-等待-非Windows

但是,它在冒号处停止处理参数,因为它将其视为保留字符。当我尝试使用“”转义时,它将转义字符视为普通字符,不允许我转义:

Error: –key is an invalid option.

The syntax of register command is:

  register [-key:<prodkey>]
错误:–密钥是无效选项。
寄存器命令的语法为:
寄存器[-键:]

我没主意了,有人有什么线索吗?

直接运行它看起来很简单:

c:\support\mbbr.exe register –key:ABCDE-ABCDE-ABCDE-ABCDE
对于等待,这可能不那么烦人:

cmd /c start /wait c:\support\mbbr.exe register –key:ABCDE-ABCDE-ABCDE-ABCDE

让powershell等待的技巧有很多:

使用invoke表达式运行,并在它返回时使用“cmd/c”捕捉它:

invoke-expression "cmd /c c:\support\mbbr.exe register –key:ABCDE-ABCDE-ABCDE-ABCDE"
如果必须在远程计算机上运行,则需要使用invoke命令:

invoke-command -computername <remote_hostname> -scriptblock {cmd /c c:\support\mbbr.exe register –key:ABCDE-ABCDE-ABCDE-ABCDE}
invoke命令-computername-scriptblock{cmd/c:\support\mbbr.exe寄存器–键:ABCDE-ABCDE-ABCDE-ABCDE}

HTH

正如您在评论中所指出的,此命令应该可以工作:

C:\support\mbbr.exe register -key:ABCDE-ABCDE-ABCDE-ABCDE
如果
mbbr.exe
的路径和/或文件名包含空格,请使用调用/调用运算符(
&
):

您不需要
启动进程
cmd.exe

由于
mbbr.exe
似乎仍然会给出上述命令的错误,请尝试引用其
-key
参数,如下所示:

C:\support\mbbr.exe register "-key:ABCDE-ABCDE-ABCDE"
或者这样:

C:\support\mbbr.exe register -key:"ABCDE-ABCDE-ABCDE"

如果这些命令不起作用,可能是来自可执行文件的帮助消息不正确(我们无法提供帮助,因为我们没有您的可执行文件)。

是什么导致您得出结论“它将其视为保留字符”?(当你说某件事不起作用时,你必须说它是如何起作用的)用当前结果更新了原始帖子。如果你使用
和“c:\support\mbbr.exe“register”-key:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE”
,它会起作用吗?我想这不会起作用
c:\support\mbbr.exe register–key:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE
Using&返回相同的错误。很遗憾,我需要-wait标志才能运行后续命令。无法让它们异步运行。cmd的问题是,当我需要它运行隐藏时,它仍然会弹出一个窗口。该链接还有其他多种等待方式,如
| out null
。也许你应该更新问题,说你想等待,但不想弹出窗口。同样的问题在这里,cmd打开一个窗口,我需要运行hidden。
Invoke Expression
在这种情况下是不必要的(事实上,)。重新测试后,
/mbbr.exe register–key:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE
似乎给了我同样的错误,它没有在冒号后面听参数。
C:\support\mbbr.exe register -key:"ABCDE-ABCDE-ABCDE"