在 PowerShell 中运行带参数的 exe 文件
exe
文件类型包含可以在 Windows 环境中执行的程序/应用程序。扩展名 EXE
是可执行文件的缩写形式。
当你双击 .exe
文件时,它将运行一些程序/应用程序。相同的 .exe
文件也可以通过 Windows PowerShell 执行。
本文只关注运行带参数的 exe
文件,因为如果它已经在 Windows PATH
中,则正常的 exe
文件执行(不带参数)非常简单。
在 PowerShell 中运行 exe
文件的方法
这里有两种情况需要解决。
-
exe
文件路径已经在 WindowsPATH
中,并且命令名不包含任何空格。 -
exe
文件路径不在 WindowsPATH
中,命令名或参数中包含空格。
对于第一种情况,调用带有参数/参数的 exe
文件非常简单。语法如下所示。
<abc.exe> [/parameter1 /parameter2...]
OR
<abc.exe> [-host "host.org" -u "username" -p "password"]
-
abc.exe
– 可执行文件名 -
/parameter1 /parameter2
– 任何数量的参数都可以包含在/
中并用空格分隔。 -
-host "host.org" -u "username" -p "password"
– 命名参数可以这样传递。
例子:
yourexecutable.exe /parameter1 /parameter2
OR
yourexecutable.exe -host "host.org" -u "username" -p "password"
同时,在第二种情况下,exe
文件路径不在 Windows PATH
中。因此,你应该明确给出 exe
文件/命令的完整路径。
如果路径包含空格,则必须将其括在引号内(如下所示)。
'C:\Program Files (x86)\Windows Media Player\wmplayer.exe'
当 PowerShell 看到这种以字符串开头的命令时,它会将命令评估为字符串并回显到命令窗口。
C:\Program Files (x86)\Windows Media Player\wmplayer.exe
这不是预期的输出。因此,要让 PowerShell 将此字符串解释为命令名称,你需要使用称为调用运算符 (&
) 的特殊运算符。我们也称其为调用运算符。
PowerShell 中的调用运算符 (&
)
呼叫运算符 (&
) 可以添加到命令名称之前。它将使 PowerShell 将调用运算符 (&
) 旁边的字符串解释为命令名称。
& 'C:\Program Files (x86)\Windows Media Player\wmplayer.exe'
这将成功打开 Windows Media Player。
在 PowerShell 中使用调用运算符 (&
) 传递参数
你可以使用调用运算符 (&
) 轻松地将参数/参数传递给命令。
& 'C:\Program Files (x86)\Windows Media Player\wmplayer.exe' "D:\music videos\video.mp4" /fullscreen
在上面的命令中:
-
'C:\Program Files (x86)\Windows Media Player\wmplayer.exe'
是命令名称。 -
"D:\videos\funny videos\ video.avi"
是传递给上述命令的第一个参数。 -
/fullscreen
– 传递给命令的另一个参数。
当你需要传递多个参数/参数时,有更简洁的方法来执行此类命令。
方法一:
将每个参数/参数分配给一个变量并重复使用,这样做更干净,也更容易维护。
$cmd = 'C:\Program Files (x86)\Windows Media Player\wmplayer.exe'
$arg1 = 'D:\music videos\video.mp4'
& $cmd $arg1 /fullscreen
方法二:
还有另一种将参数/参数作为一个单元传递给命令的方法,称为 splatting。
$cmd = 'C:\Program Files (x86)\Windows Media Player\wmplayer.exe'
$allargs = @('D:\music videos\video.mp4', 'anotherargument', 'nextargument')
& $cmd $allargs /fullscreen
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。