从.bat文件运行python脚本并使用Powersh

2024-09-24 10:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的W10服务器上运行了几个python脚本,我正在寻找一种将它们全部打开的方法。在

我手动运行脚本打开脚本文件夹上的PowerShell并执行pythonw script.py

我试了好几种方法,都没有结果。。。在

PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe C:\Users\pc2\script.py'"

同时测试:

^{pr2}$

以及:

powershell -command "& {&'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe ' C:\Users\pc2\script.py}"

以上这些都没用。。。他们应该打开脚本.py使用pythonw文件。在

有人能给我指出正确的方向吗?在


Tags: 方法py服务器脚本localscriptexeusers
2条回答
  • 要执行单个脚本:

    powershell -c "pythonw 'C:\Users\pc2\script1.py'"
    

注意:只有当文件路径包含shell元字符(如空格)时,才需要在文件路径周围加上'...'
或者, 从cmd.exe(批处理文件)调用时使用""..."",从PowerShell调用时使用`"...`"

  • 要执行多个脚本,请按顺序执行

    powershell -c "& { $Args | % { pythonw $_ } } 'C:\Users\pc2\script1.py' 'C:\Users\pc2\script2.py'"
    

注意:这只在从cmd.exe(批处理文件)调用时有效。
(在PowerShell中,只需直接执行"..."中的内容)


至于您尝试了什么,只关注PowerShell最终看到了什么命令字符串:

  • & 'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe C:\Users\pc2\script.py'

问题是您将整个命令行传递给&,而它只需要可执行的名称;
C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe C:\Users\pc2\script.py显然不是有效的可执行文件名/路径。在

  • 'pythonw C:\Users\pc2\script.py'

由于包含在'...'中,这是一个字符串文本,PowerShell只是输出,从未执行过命令。在

  • & {&'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe ' C:\Users\pc2\script.py}

由于您使用的是一个脚本块{ ... }),所以您需要将C:\Users\pc2\script.py作为一个参数传递给,因此您必须在块内通过自动$Args变量或通过param()块中定义的参数来引用它。
(顺便说一句:您的文件路径有一个多余的尾随空格,但是PowerShell似乎忽略了这一点。)

从powershell控制台本身,您可以这样直接运行:

PS C:\Python27> python C:\Users\pc2\script.py

如有必要,请编辑powershell配置文件中的PATHTEXT环境变量:

^{pr2}$

在批处理中,也可以使用相同的命令来执行python。将文件另存为什么东西。蝙蝠公司名称:

^{3}$

希望有帮助。在

相关问题 更多 >