[英]How to get path of current directory in Windows Batch/Python file?
[英]How to add the directory of a batch file to Windows PATH?
我有一些为 Linux 开发的 Python 代码,来自我不想更改的存储库。 该代码使用subprocess
Python 模块调用名为colmap
的命令行工具。
为了让这段代码在 Windows 下运行,我安装了colmap
,将包含colmap.exe
的bin
文件夹以及包含文件COLMAP.bat
的父文件夹添加到了PATH
中。 然后,我还必须通过subprocess.run
更改 Python 代码以运行colmap.bat
而不是colmap
。
我想避免后一步,因为它会使 Python 代码与 Linux/Mac 不兼容,我想避免通过platform.system()
添加操作系统检查。
有没有办法将colmap.exe
添加到PATH
,以便可以通过colmap
由cmd.exe
调用它?
就像我说的, bin
文件夹已经在PATH
上。 我已经尝试创建名为COLMAP.bat
的colmap
快捷方式并将 COLMAP.bat 重命名为COLMAP.bat
, colmap
。
这是批处理文件的内容:
set SCRIPT_PATH=%~dp0
set PATH=%SCRIPT_PATH%\lib;%PATH%
set QT_PLUGIN_PATH=%SCRIPT_PATH%\lib\plugins;%QT_PLUGIN_PATH%
set COMMAND=%1
set ARGUMENTS=
shift
:extract_argument_loop
if "%1"=="" goto after_extract_argument_loop
set ARGUMENTS=%ARGUMENTS% %1
shift
goto extract_argument_loop
:after_extract_argument_loop
if "%COMMAND%"=="" set COMMAND=gui
"%SCRIPT_PATH%\bin\colmap" %COMMAND% %ARGUMENTS%
if "%COMMAND%"=="" set COMMAND=gui
set "colmapexe="
for /f "delims=" %%b in ('where colmap.exe') do if not defined colmapexe set "colmapexe=%%b"
if defined colmapexe ("%colmapexe" %COMMAND% %ARGUMENTS%) else echo Colmap.exe not found&pause
应该通过定位colmap.exe
并将其安装在变量colmapexe
中来工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.