执行一个powershell文件,其中包含空格的绝对路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行一个powershell文件,其中包含空格的绝对路径相关的知识,希望对你有一定的参考价值。
我正在尝试在我的python脚本中执行ps1
文件。
proc = subprocess.Popen(["powershell.exe", 'F:/FOLDER/FOLDER OK/myfile.ps1'])
它停在F:/FOLDER/FOLDER
所以我添加了这样的额外引用:
proc = subprocess.Popen(["powershell.exe", '"F:/FOLDER/FOLDER OK/myfile.ps1"'])
现在没有错误,但它也没有执行脚本......任何想法?
答案
powershell.exe
不假设参数自动成为要执行的文件;你需要识别所有参数。使用-File
开关
proc = subprocess.Popen(["powershell.exe", "-File", r"F:\FOLDER\FOLDER OK\myfile.ps1"])
r
中的r"..."
(原始)关闭了逃逸序列处理,因此可以在不逃避的情况下使用\
。
请参阅Microsoft Docs上的PowerShell Command Line Help。
PowerShell[.exe]
[-Command { - | <script-block> [-args <arg-array>]
| <string> [<CommandParameters>] } ]
[-EncodedCommand <Base64EncodedCommand>]
[-ExecutionPolicy <ExecutionPolicy>]
[-File <FilePath> [<Args>]]
[-InputFormat {Text | XML}]
[-Mta]
[-NoExit]
[-NoLogo]
[-NonInteractive]
[-NoProfile]
[-OutputFormat {Text | XML}]
[-PSConsoleFile <FilePath> | -Version <PowerShell version>]
[-Sta]
[-WindowStyle <style>]
以上是关于执行一个powershell文件,其中包含空格的绝对路径的主要内容,如果未能解决你的问题,请参考以下文章
使用 Powershell 中的 Stack,如何传递包含空格的测试参数?