我尝试了以下的多次迭代,但没有任何效果。
.bat文件需要接受2个参数。 $IN
和$TIC
是首字母和票号。
变量:
$IN = $textboxInitials.Text
$TIC = $textboxTicket.Text
命令(这些都不起作用):
start "\\Path\InstallOffice.bat" $IN $TIC
start "\\Path\InstallOffice.bat $IN $TIC"
start "\\Path\InstallOffice.bat" KL 562355
cmd.exe /C "\\Path\InstallOffice.bat" KL 562355
& "\\Path\InstallOffice.bat" $IN $TIC
这确实有效,但没有参数。
start "\\Path\InstallOffice.bat"
我正在编写一个程序,在我们的标准构建过程之后安装一堆程序,以便帮助台可以选择安装的需求。这只是第一个要运行的命令,也会有一堆命令,所以powershell需要等待.bat文件完成才能继续执行下一个命令。
答案 0 :(得分:2)
使用这个小型演示批处理EchoArgs.cmd:
$IN = 'KL'
$TIC = '562355'
$Bat = ".\EchoArgs.cmd"
Clear
"--Variant 1"
start -wait -NoNewWindow $Bat -args "$IN $TIC"
"--Variant 2"
start -wait -NoNewWindow $bat "$IN $TIC"
"--Variant 3"
start -wait -NoNewWindow $Bat "KL 562355"
"--Variant 4"
cmd.exe /C $Bat KL 562355
"--Variant 5"
& $Bat $IN $TIC
这5个命令的略微修改版本:
--Variant 1
Args=KL 562355
Arg1=KL
Arg2=562355
--Variant 2
Args=KL 562355
Arg1=KL
Arg2=562355
--Variant 3
Args=KL 562355
Arg1=KL
Arg2=562355
--Variant 4
Args=KL 562355
Arg1=KL
Arg2=562355
--Variant 5
Args=KL 562355
Arg1=KL
Arg2=562355
我得到了这个示例输出:
{{1}}
答案 1 :(得分:1)
使用Start-Process
。您可以使用-ArgumentList $A,$B,...
传递参数。
此外,您可以使用-PassThru
调用它来接收流程对象并在其上调用WaitForExit()
。
这是msdn页面。