Windows批处理:如何搜索可执行文件的路径并存储在变量中?

时间:2017-06-21 07:34:57

标签: windows batch-file cmd

我有以下脚本应该搜索变量的路径并将其存储在变量中:

FOR %%i IN (app.exe) DO (
    SET app=%%~$PATH:i 
    ECHO %app%
)

但是echo的输出是空的,无论我是在for循环内部还是外部的ECHO。我错过了什么?

2 个答案:

答案 0 :(得分:1)

如果要在括号范围内打印结果,则需要delayed expansion

setlocal enableDelayedExpansion
FOR %%i IN (app.exe) DO (
    SET "app=%%~$PATH:i" 
    ECHO !app!
)

您还可以使用where command

for /f "tokens=* delims=" %%a in ('where app.exe') do set "app=%%a"
echo %app%

答案 1 :(得分:0)

我知道了,不知怎的,我设法从我的系统PATH环境变量中删除了app.exe目录。我读了它,现在它有效...