python - 为什么命令字符串没有完全从 Python 传递到系统?

标签 python windows

我的Python代码是:

import os
targetdir = os.getenv('APPDATA')
command = "elev.cmd {0}\data\nssm.exe install service {1}\data\service.exe".format(targetdir,targetdir)
os.system(command)

我完全可以使用os.systemelev.cmd 生成 UAC 对话框并提升并执行传递给它的所有内容。

但我怀疑参数是分两行传递给命令的。

命令行字符串在一行中传递不完全的原因是什么?

最佳答案

是的,您没有正确转义命令字符串,因此 \ 被解释为转义字符,因此 \n 将被解释为换行符,而不是 \ 后跟 n

在字符串前添加 r 使其成为原始字符串,这样 \ 就不会充当转义字符。

command = r"elev.cmd {0}\data\nssm.exe install service {1}\data\service.exe".format(targetdir,targetdir)

关于python - 为什么命令字符串没有完全从 Python 传递到系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32158470/

相关文章:

Windows Chrome 扩展 native 消息只能收到第一个响应

php - Windows 上的 WGET 通过 PHP exec() 不起作用

python - 为什么 Pandas 在一种情况下会导致 'ZeroDivisionError' 而在另一种情况下不会?

python - 使用子图和循环按组绘制 Pandas

python - 将 Pandas 多索引变成列

c - MPICH:如何发布_name 以便客户端应用程序可以查找_name 呢?

windows - 将 cordova 应用程序部署到真正的 Windows Phone 8.1 设备时出现问题

c++ - 当 chrome 是默认浏览器时,ShellExecute 无法在 Windows 8 上打开页面

java - 为什么PHP构造函数是一个方法?

python - Pandas 获得所有列而没有一列