python - 从python3.4执行windows命令

标签 python windows cmd subprocess python-3.4

我有一个用于从 Windows 命令行进行部署的命令。现在我需要从外部 python3.4 脚本运行相同的脚本。

命令是 C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild "D:\WebService\WebService.sln"/p:DeployOnBuild=true/p:PublishProfile="D:\WebService\Properties\PublishProfiles\MyDeployment.pubxml"/p:AllowUntrustedCertificate=true/p:UserName=name/p:Password=PASSWORD.

我怎样才能做到这一点。我尝试了 subprocess 。但它不起作用。请帮助我。

最佳答案

您的问题似乎是 \" 字符,因此请使用原始字符串。此外,使用列表更安全:

proc = subprocess.Popen(
            [r"C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild",
             r"D:\WebService\WebService.sln",
             r"/p:DeployOnBuild=true",
             r"/p:PublishProfile=D:\WebService\Properties\PublishProfiles\MyDeployment.pubxml",
             r"/p:AllowUntrustedCertificate=true",
             r"/p:UserName=name",
             r"/p:Password=PASSWORD"])

proc.wait()

严格来说,您不需要所有这些参数的原始字符串,但使用 Windows 路径这样做更安全。 如果您嵌入了空格(作为第一个参数),则只需要内部双引号。这里我们不使用 shell,如果您设置 shell=True 作为参数需要一个。在 Windows 上使用 shell 的一个原因是为了文件名关联,但您在这里似乎没有使用它。

关于python - 从python3.4执行windows命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30637465/

相关文章:

python - 在 Pycharm 中对类装饰属性进行类型检查

python - 关于 Diffie-Hellman key 交换

c++ - 将 Microsoft 的源代码注释语言 (SAL) 与 Doxygen 一起使用?

windows - 为什么 Bison 在 Windows 中不能正常工作(不生成输出文件)?

windows - winapi查找网页对话框的子窗口标题(属性)

windows - cmd 启动命令 ignores/min 开关

python - 使用 Python 在 Maya 中打开 .ma 文件(ASCII)?

c# - 如何在 C# 中通过 CMD 进程向运行的应用程序输入输入?

windows - 删除除一个目录外的所有文件和目录

python - 为什么 Pandas 应用计算两次