我在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'"
也经过测试:
powershell.exe -noexit -command "'pythonw C:\Users\pc2\script.py'"
和
powershell -command "& {&'C:\Users\pc2\AppData\Local\Programs\Python\Python36-32\pythonw.exe ' C:\Users\pc2\script.py}"
以上都没有做任何事......他们应该使用pythonw打开script.py文件。
有人能指出我正确的方向来完成这项工作吗?
答案 0 :(得分:0)
从powershell控制台本身,您可以直接运行:
PS C:\Python27> python C:\Users\pc2\script.py
如有必要,请在powershell配置文件中编辑 PATHTEXT 环境变量:
$env:PATHEXT += ";.py"
在批处理中,您也可以使用相同的命令来执行python。将文件另存为something.bat:
python C:\Users\pc2\script.py
希望它有所帮助。
答案 1 :(得分:0)
执行单个脚本:
powershell -c "pythonw 'C:\Users\pc2\script1.py'"
注意:仅当后者包含空元字符(如空格)时,才需要在文件路径周围包含'...'
。
或者,
从""...""
(批处理文件)调用时使用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似乎忽略了这一点。)