我正在使用Windows批处理文件来运行python脚本。代码如下;
start pythonw "C:\Users\XXX\Workplace\python_script.py"
这是不可取的,因为python脚本的路径是绝对的。假设我将批处理文件和python脚本放在同一个文件夹中。如何编写批处理文件以某种方式检测当前文件夹并运行位于同一文件夹中的python脚本?
谢谢。
答案 0 :(得分:2)
您可以使用%~dp0
获取bat文件所在文件夹的路径。
代码看起来像这样;
start pythonw "%~dp0\python_script.py"
答案 1 :(得分:1)
由于您可以在未指定目录的情况下运行pythonw
,因此pythonw
必须位于路径上。
如果您将 yourbatch.bat 放在同一目录中,那么 yourbatch.bat 也会在路径上,所以您需要做的就是执行 yourbatch ,您的批次将会运行。
执行批处理的目录不相关。如果您将批次更改为
start "Window title" pythonw "python_script.py"
并将其放在您的路径中,然后 yourbatch 将使用当前目录中的参数pythonw
运行"python_script.py"
。
注意:start
命令将“窗口标题”视为其第一个引用参数。你不想要一个窗口标题?只需使用""
。
如果您的python脚本与 yourbatch.bat 在同一目录中,那么
start "Window title" pythonw "%~dp0\python_script.py"
应该在任何地方运行该脚本。
并采用非常灵活的方法
start "Window title" pythonw "%~1.py"
如果执行
,将启动脚本somename.py
yourbatch somename
可以引用somename
并且可以包含您喜欢的任何路径(例如"c:\my development\area\latest_script"
)