0
我有以下腳本應該路徑搜索到一個變量,並存儲在一個變量:Windows批處理:如何搜索可執行文件的路徑並將其存儲在變量中?
FOR %%i IN (app.exe) DO (
SET app=%%~$PATH:i
ECHO %app%
)
但回聲的輸出是空的,如果我贊同內部或外部的for循環沒有問題。我錯過了什麼?
我有以下腳本應該路徑搜索到一個變量,並存儲在一個變量:Windows批處理:如何搜索可執行文件的路徑並將其存儲在變量中?
FOR %%i IN (app.exe) DO (
SET app=%%~$PATH:i
ECHO %app%
)
但回聲的輸出是空的,如果我贊同內部或外部的for循環沒有問題。我錯過了什麼?
,如果你要打印的括號內的結果,你需要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%
我得到了它,不知何故,我設法去除我的系統中的app.exe目錄PATH環境變量。我讀了它,現在它工作...
'設置應用= %%〜dpi'的工作? – Regejok
怎麼樣'哪裏「app.exe」'?捕獲輸出,做'for/F「delims = eol = |」 ('其中「app.exe」')執行(設置「APP = %% A」)%'A中的%%。無論如何,'echo%APP%'必須在循環之外,因此超出了最後的')'! – aschipfl
@Regejok,我想OP想通過'PATH'變量找到'app.exe'; '〜dp'修飾符只返回*當前目錄*,與'app.exe'的真實位置無關,因爲當文件集不包含任何全局通配符時,for'甚至不訪問文件系統(' *','?')... – aschipfl