Batch file 需要使用批处理文件(添加为系统路径)的当前路径(其中我在终端写入“addpath”)
我添加了一个批处理文件(“addpath.bat”)作为系统路径,这样我就可以使用命令“addpath”从任何文件夹运行它。我需要程序返回调用程序的路径(而不是实际文件“addpath.bat”的位置) 我试过:Batch file 需要使用批处理文件(添加为系统路径)的当前路径(其中我在终端写入“addpath”),batch-file,path,environment-variables,Batch File,Path,Environment Variables,我添加了一个批处理文件(“addpath.bat”)作为系统路径,这样我就可以使用命令“addpath”从任何文件夹运行它。我需要程序返回调用程序的路径(而不是实际文件“addpath.bat”的位置) 我试过: %cd% 但这给了我实际文件的位置,这不是我想要的 “addpath.bat” python文件仅用于打印批处理文件的输出 “addpath.py” 如果我在桌面(“C:\Users\user\desktop”)上打开终端(CMD或PowerShell),我希望程序返回以下路径: C:
%cd%
但这给了我实际文件的位置,这不是我想要的
“addpath.bat”
python文件仅用于打印批处理文件的输出
“addpath.py”
如果我在桌面(“C:\Users\user\desktop”)上打开终端(CMD或PowerShell),我希望程序返回以下路径:
C:\Users\user\Desktop正如@Mofi所说,问题是我在试图获取路径之前更改了目录。解决方案是在更改目录之前定义mypath,然后在python文件中使用它 “addpath.bat” “addpath.py”
问题是,正如@Mofi所说,我在试图获取路径之前更改了目录。解决方案是在更改目录之前定义mypath,然后在python文件中使用它 “addpath.bat” “addpath.py”
那么,如果您使用
cd
更改当前目录,那么任何程序如何知道以前的当前目录是什么?如果启动批处理文件时的当前目录位于与驱动器C:不同的驱动器上,则批处理文件中使用的命令cd
将根本不起作用。解决方案很可能是单行python“%~dp0addpath.py”“%CD%”
。但是有一些Python方法可以在不通过命令行参数将当前目录路径传递给Python脚本的情况下运行。我建议打开一个窗口,运行cd/?
并读取输出帮助,运行pushd/?
并读取输出帮助,运行popd/?
并读取输出帮助,运行call/?
并读取输出帮助。好的,如果使用cd
更改当前目录,任何程序如何知道以前的当前目录是什么?如果启动批处理文件时的当前目录位于与驱动器C:不同的驱动器上,则批处理文件中使用的命令cd
将根本不起作用。解决方案很可能是单行python“%~dp0addpath.py”“%CD%”
。但是,有一些Python方法可以在不通过命令行参数将当前目录路径传递到Python脚本的情况下运行。我建议打开一个窗口,运行cd/?
并读取输出帮助,运行pushd/?
并读取输出帮助,运行popd/?
并读取输出帮助,运行call/?
并读取输出帮助。
cd C:\path\to\pythonfile
SET mypath=%cd%
python addpath.py %mypath%
import sys
print(f'\n\nThis is the path: {sys.argv[1]}')
SET mypath=%CD%
cd C:\path\to\pythonfile
python addpath.py %mypath%
import sys
print(f'\n\nThis is the path: {sys.argv[1]}')