我正在用python编写一个运行程序的脚本。路径或参数中的空格需要用引号引起来,但由于某些原因,除非我使用双引号字符串,否则它似乎不起作用
DEFAULT_CLIENT = '""C:/Program Files/Borland/StarTeam SDK 14.0/bin""'
command =('stjava.exe -autologon -is -p ""'+src+'"" -fp ""'+dst+'"" '
'-filter "OI" "*" -f ""'+dst+'/config/bc.stjava""')
if not "StarTeam Cross-Platform Client" in os.getenv("PATH"):
print "[INFO] Star Team Client not found in path defaulting to: "+DEFAULT_CLIENT
command = DEFAULT_CLIENT+"/"+command
os.system(command)
为什么会这样?如果我做错了什么,那我该怎么做呢?在
[Update]调用os.system(command)
时,将正确地找到应用程序:
但这并不是:
command = '"C:/Program Files/Borland/StarTeam SDK 14.0/bin/stjava.exe" '
command += '-autologon -is -p '
command += '"C:\a\b c\d"'
它说“C:\Program”不是可识别的命令。我似乎不知道为什么会有争论。在
初始答案:
您希望
C:/Program Files/Borland/StarTeam SDK 14.0/bin/stjava.exe
是完整的二进制路径,对吗? 由于路径中有空格,因此必须使用引号。在使用单引号,在连接之后,它将类似于:
"C:/Program Files/Borland/StarTeam SDK 14.0/bin"stjava.exe
。在你试过使用正确的文件路径分隔符吗?在
在您添加更多信息时,我有另一个建议:
我看到命令字符串中的最后一个参数包含反斜杠字符。在许多情况下,这些都被证明是有问题的。你能试着把它们转义,或者加倍,变成
"C:\\a\\b c\\d"
之类的东西吗?在据我所知,你需要按命令行事
您可以通过以下方式实现:
^{pr2}$我要说的是,出于某种原因,您使用的命令行解析器或Windows或DOS命令行解释器需要用引号将文件名加上“转义引号”。我用DOS DIR命令尝试了各种组合,其中有0、1和2个双引号,每次都有效。在
相关问题 更多 >
编程相关推荐