Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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_Batch File_Parameters - Fatal编程技术网

如何从Powershell向批处理文件传递参数

如何从Powershell向批处理文件传递参数,powershell,batch-file,parameters,Powershell,Batch File,Parameters,我尝试了以下的多次迭代,但都没有成功。 .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 cm

我尝试了以下的多次迭代,但都没有成功。 .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文件完成,然后才能执行下一个命令

使用启动过程。您可以使用-ArgumentList$A、$B、…,传递参数

此外,您可以使用-PassThru调用它来接收流程对象并对其调用WaitForExit


这是页面。

带有此小演示批EchoArgs.cmd:

@Echo off&SetLocal EnableDelayedExpansion
Set Cnt=0
Echo:Args=%*
:loop
If "%~1" Neq "" Set /A Cnt+=1&Echo Arg!Cnt!=%1&Shift&Goto :loop
这是对5个命令的稍微修订版本:

$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
我得到以下示例输出:

--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

在bat脚本中,您是否将%1引用为$In,将%2引用为$TIC?如果您绕过PowerShell脚本,从cmd控制台执行bat脚本,它是否会以本机方式运行?