0

我有这个命令要运行:

'xcopy /e "%s" "%s"'%(executablesPath + "\\*", sourcePath+"\\Executables\\")

其格式为:

xcopy /e "I:\Storage$\tools\Executables\*" "C:\Win10x64-1903\Executables\"

并跑进:

subprocess.run(shlex.split(command))

是什么导致了错误ValueError: No closing quotation

4

1 回答 1

0

shlex.split不喜欢双引号之前的最后一个反斜杠。似乎您想逃避这句话,因此是消息。

快速修复:替换sourcePath+"\\Executables\\"os.path.join(sourcePath,"Executables")

更好的解决方法:不要仅仅为了再次拆分而编写命令行。只需使用参数列表

subprocess.run(["xcopy","/e",os.path.join(executablesPath,"*"),os.path.join(sourcePath,"Executables")])

更好shutil.copytree的是,用于递归复制目录。无需非便携式外部命令。一些东西(未经测试)像:

import shutil
shutil.copytree(executablesPath,os.path.join(sourcePath,"Executables"))
于 2019-09-17T18:55:37.763 回答