Batch file 找到文件,并复制其路径。批处理脚本
我正在编写一个批处理脚本来自动构建Qt项目 我遇到的一个问题是,Qt的安装目录路径对于每个用户可能都不相同 例如,在我的系统上,我的mingw48_32的路径是: c:\Qt\Qt5.2.0\5.2.0\mingw48\u 32 但在其他人的系统上可能是这样 c:\Qt\5.2.0\mingw48_32取决于他们选择的设置方式 因此,当我为qmake.exe指定路径时,我需要知道qmake.exe的路径是 如何搜索文件并从批处理脚本复制其路径 蝙蝠从哪里来 不太像真正的来源,但可能会有帮助Batch file 找到文件,并复制其路径。批处理脚本,batch-file,cmd,path,Batch File,Cmd,Path,我正在编写一个批处理脚本来自动构建Qt项目 我遇到的一个问题是,Qt的安装目录路径对于每个用户可能都不相同 例如,在我的系统上,我的mingw48_32的路径是: c:\Qt\Qt5.2.0\5.2.0\mingw48\u 32 但在其他人的系统上可能是这样 c:\Qt\5.2.0\mingw48_32取决于他们选择的设置方式 因此,当我为qmake.exe指定路径时,我需要知道qmake.exe的路径是 如何搜索文件并从批处理脚本复制其路径 蝙蝠从哪里来 不太像真正的来源,但可能会有帮助 @S
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@SET EXITCODE=1
:: Needs an argument.
@IF "x%1"=="x" (
@ECHO Usage: %0 ^<progName^>
GOTO TheEnd
)
@set newline=^
@REM Previous two (2) blank lines are required. Do not change!
@REM Ensure that the current working directory is first
@REM because that is where DOS looks first.
@PATH=.;!PATH!
@FOR /F "tokens=*" %%i in ("%PATH:;=!newline!%") DO @(
@IF EXIST %%i\%1 (
@ECHO %%i\%1
@SET EXITCODE=0
)
@FOR /F "tokens=*" %%x in ("%PATHEXT:;=!newline!%") DO @(
@IF EXIST %%i\%1%%x (
@ECHO %%i\%1%%x
@SET EXITCODE=0
)
)
)
:TheEnd
@EXIT /B %EXITCODE%
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@设置EXITCODE=1
他需要一个论点。
@如果“x%1”==“x”(
@回显用法:%0^
转到终点
)
@设置换行符=^
@REM前两(2)个空行是必需的。不要改变!
@REM确保当前工作目录是第一个
@REM,因为这是DOS首先看到的地方。
@路径=。;!路径
@对于(“%PATH:;=!newline!%”中的/F“tokens=*”%%i,请执行以下操作@(
@如果存在%%i\%1(
@回显%%i\%1
@设置EXITCODE=0
)
@对于(“%PATHEXT:;=!newline!%”中的/F“tokens=*”%%x,请执行以下操作@(
@如果存在%%i\%1%%x(
@回声%%i\%1%%x
@设置EXITCODE=0
)
)
)
:结束
@退出/B%EXITCODE%
whence.bat
不太像真正的来源,但可能会有帮助
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@SET EXITCODE=1
:: Needs an argument.
@IF "x%1"=="x" (
@ECHO Usage: %0 ^<progName^>
GOTO TheEnd
)
@set newline=^
@REM Previous two (2) blank lines are required. Do not change!
@REM Ensure that the current working directory is first
@REM because that is where DOS looks first.
@PATH=.;!PATH!
@FOR /F "tokens=*" %%i in ("%PATH:;=!newline!%") DO @(
@IF EXIST %%i\%1 (
@ECHO %%i\%1
@SET EXITCODE=0
)
@FOR /F "tokens=*" %%x in ("%PATHEXT:;=!newline!%") DO @(
@IF EXIST %%i\%1%%x (
@ECHO %%i\%1%%x
@SET EXITCODE=0
)
)
)
:TheEnd
@EXIT /B %EXITCODE%
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@设置EXITCODE=1
他需要一个论点。
@如果“x%1”==“x”(
@回显用法:%0^
转到终点
)
@设置换行符=^
@REM前两(2)个空行是必需的。不要改变!
@REM确保当前工作目录是第一个
@REM,因为这是DOS首先看到的地方。
@路径=。;!路径
@对于(“%PATH:;=!newline!%”中的/F“tokens=*”%%i,请执行以下操作@(
@如果存在%%i\%1(
@回显%%i\%1
@设置EXITCODE=0
)
@对于(“%PATHEXT:;=!newline!%”中的/F“tokens=*”%%x,请执行以下操作@(
@如果存在%%i\%1%%x(
@回声%%i\%1%%x
@设置EXITCODE=0
)
)
)
:结束
@退出/B%EXITCODE%
您可以查看此文件的可能副本==>您可以查看此文件的可能副本==>