2017-06-21 35 views
0

我有以下腳本應該路徑搜索到一個變量,並存儲在一個變量:Windows批處理:如何搜索可執行文件的路徑並將其存儲在變量中?

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

但回聲的輸出是空的,如果我贊同內部或外部的for循環沒有問題。我錯過了什麼?

+0

'設置應用= %%〜dpi'的工作? – Regejok

+0

怎麼樣'哪裏「app.exe」'?捕獲輸出,做'for/F「delims = eol = |」 ('其中「app.exe」')執行(設置「APP = %% A」)%'A中的%%。無論如何,'echo%APP%'必須在循環之外,因此超出了最後的')'! – aschipfl

+0

@Regejok,我想OP想通過'PATH'變量找到'app.exe'; '〜dp'修飾符只返回*當前目錄*,與'app.exe'的真實位置無關,因爲當文件集不包含任何全局通配符時,for'甚至不訪問文件系統(' *','?')... – aschipfl

回答

1

,如果你要打印的括號內的結果,你需要delayed expansion範圍:

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

你也可以使用wherecommand

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

我得到了它,不知何故,我設法去除我的系統中的app.exe目錄PATH環境變量。我讀了它,現在它工作...

相關問題