[英]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.