我正在尝试通过python运行批处理文件;然而,它没有认识到这条道路。它会在“练习”和“文件夹”之间的空格后停止读取路径。我怎样才能解决这个问题?我试过r并使用向前和向后斜线。任何帮助都是极好的。谢谢!
import os
Practice = r"C:\Users\Username\Desktop\Practice Folder\Practice.bat"
os.system(Practice)
'C:\ Users \ Username \ Desktop \ Practice'未被识别为内部 或外部命令,可操作程序或批处理文件。
答案 0 :(得分:1)
在使用某些相对重定向路径时,将工作目录更改为脚本目录。推送将当前目录更改为任何驱动器,并可以映射网络驱动器。 &&
链命令仅在左手命令成功时才运行右手命令。 %UserProfile%
是一个标准的环境变量,通常比C:\Users\Username
的固定路径更好。
import os
Practice = r'pushd "%UserProfile%\Desktop\Practice Folder" && Practice.bat'
os.system(Practice)
答案 1 :(得分:1)
尝试使用call
模块中的subprocess
。
您只需将命令括在双引号中。
from subprocess import call
call(r'"C:\Users\Username\Desktop\Practice Folder\Practice.bat"')
(注意放置引号的顺序......)
如果您注意引号的顺序,这甚至适用于os.system()
。
from os import system
system(r'"C:\Users\Username\Desktop\Practice Folder\Practice.bat"')
这有助于解决您的问题。
答案 2 :(得分:0)
您可能需要使用两种类型的引号,例如
import os
Practice = r"'C:\Users\Username\Desktop\Practice Folder\Practice.bat'"
os.system(Practice)
实际上,您的字符串不包含引号 - 您需要在字符串中包含引号,否则Windows会认为Folder\Practice.bat
是命令的参数而不是文件路径的延续< / p>
答案 3 :(得分:0)
试试这个
import os
Practice = os.path.abspath(r"C:\Users\Username\Desktop\Practice Folder\Practice.bat")
编辑:
这样的事对我有用
os.system(r'"C:\Users\Username\Desktop\Practice Folder\Practice.bat"')