我需要通过powershell将逗号分隔的参数传递给批处理文件,并且似乎无法使其工作。如果我直接在powershell中调用它,我将如何调用批处理文件:
PS C:\Users\Mike> type zz.cmd
@echo off
echo/* = [%*}
echo/1 = [%1]
echo/2 = [%2]
echo/3 = [%3]
pause
PS C:\Users\Mike> cmd /c zz "q,w,e"
* = [q,w,e}
1 = [q]
2 = [w]
3 = [e]
Press any key to continue . . .
如果我使用cmd / c zz""" q,w,e"""或者cmd / c zz'" q,w,e"'我会得到" q,w,e"对于arg 1.这很好。但是,我必须使用Invoke-Command调用powershell。这样做时,脚本不起作用:
powershell.exe Invoke-Command -ScriptBlock { "cmd /c E:\\npoess\\oo\\WoD\\zzz" '"q,w,e"'}
任何想法如何从命令提示符获取powershell调用以获得" q,w,e"作为批处理文件的一个参数?
谢谢,
-Mike
答案 0 :(得分:1)
这个没有所有引号的invoke命令适合传递给我: 我认为变量周围的引号将集合作为字符串而不是单独的值传递。
Invoke-Command -ScriptBlock {
cmd /c C:\scripts\zz.cmd q,w,e
}