1
我已經在Windows 7爲什麼第二個參數會導致此腳本失敗?
1)main.bat 3個BAT文件:
test testEcho parm1 parm2
2)下的test.bat:
@echo With one parm
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -nologo -noprofile^
-executionpolicy bypass -command "& {start-process -verb 'runas' -file %1.bat %2}"
@echo With two parms
"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe" -nologo -noprofile^
-executionpolicy bypass -command "& {start-process -verb 'runas' -file %1.bat %2 %3}"
pause
3)testEcho.bat:
@echo ==== 0:%0 1:%1 2:%2
pause
當我運行main.bat時,它傳遞目標bat文件(testEcho)的名稱和兩個參數。然後我使用PowerShell兩次運行傳入的bat文件名(%1 = testEcho)。第一次使用一個參數(%2 = parm1),第二次使用兩個參數(%2 = parm1,%3 = parm2)。
第一次按預期工作,使用一個參數運行testEcho.bat。它回聲結果:
==== 0:C:\testEcho.bat 1:parm1 2:
第二次運行失敗,錯誤:
"Start-Process: A positional parameter cannot be found that accepts
argument 'parm2'.At line:1 char:4"
爲什麼在第二次嘗試失敗,我怎麼能得到它的工作?它們之間的唯一區別是第一次嘗試只傳遞一個參數,而第二次嘗試傳遞多個參數。