从.bat文件运行PowerShell命令

时间:2018-03-16 16:19:29

标签: powershell batch-file

我试图仅使用一个.bat文件来执行我的Python应用。

我的代码是:

powershell -c "& { $Args | % { pythonw $_ } } 'C:\Users\pc2\Dropbox\app1.py' 'C:\Users\pc2\Dropbox\app2.py' 'C:\Users\pc2\Dropbox\app3.py' 'C:\Users\pc2\Dropbox\app4.py' 'C:\Users\pc2\Dropbox\app5.py'"

暂停

这应该在PowerShell中打开所有脚本,但是当执行bat文件时,cmd窗口打开然后我得到:

C:\Users\USER\Dropbox\Aplicaciones>powershell -c "& { $Args | \Users\pc2\Dropbox\Aplicaciones\OnlyBot\only.py' 'C:\Users\pc2\Dropbox\Aplicaciones\Linker2Bot\linker.py' 'C:\Users\pc2\Dropbox\Aplicaciones\Esmuybarato\barato.py' 'C:\Users\pc2\Dropbox\Aplicaciones\to2\to2.py' 'C:\Users\pc2\Dropbox\Aplicaciones\TrackerBOT\boxxon.py'"

Falta la cadena en el terminador:'。     + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException     + FullyQualifiedErrorId:TerminatorExpectedAtEndOfString

我注意到批处理执行时缺少pythonw $_

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如Squashman指出的那样,你可能只需要加倍%

powershell -c "& { $Args | %%{ pythonw $_ } } 'C:\Users\pc2\Dropbox\app1.py' 'C:\Users\pc2\Dropbox\app2.py' 'C:\Users\pc2\Dropbox\app3.py' 'C:\Users\pc2\Dropbox\app4.py' 'C:\Users\pc2\Dropbox\app5.py'"
  

百分比符号是批处理中用于引用变量值的特殊字符。所以你需要通过加倍来逃避百分号。