Robocopy Python脚本将整个命令作为源运行

0 投票
3 回答
2650 浏览
提问于 2025-04-18 02:59

我在我的脚本里有这么一行:

subprocess.call([r"robocopy", "\\\\stockholm\exam$\ \\\\stockholm\exam_temp$\ /e /move"])

但是当我运行它的时候,Robocopy认为整行都是源地址,没有目标地址,所以就失败了。有人能告诉我我的语法哪里出错了吗?如果我在CMD里运行同样的这一行(去掉多余的\'等),它就能正常工作!

非常感谢,
克里斯。

3 个回答

0

你可以传递一个列表,比如:

command_to_pass = ["robocopy", src, dst, extra_args]

call(command_to_pass)

0

试着把参数作为列表传递,比如这样。

subprocess.call([r"robocopy", "\\\\stockholm\exam$\","\\\\stockholm\exam_temp$\","/e","/move"])

我不太确定多出来的反斜杠是怎么回事。

1

你需要对反斜杠(\)进行转义,或者使用原始字符串。

subprocess.call([r"robocopy", r"\\stockholm\exam$\ \\stockholm\exam_temp$\ /e /move"])

撰写回答