我一直在使用這個網站一段時間,並發現它非常有價值的找到腳本問題的解決方案。今天我決定提出一個問題,因爲我在這裏度過了3天,超級用戶和谷歌搜索之後還沒有找到我的解決方案。關於我所有這些,現在我的觀點...Windows FOR命令不擴展系統環境變量
我有幾個安裝程序,每個程序稍微不同的版本或風味。每個安裝都有一個文本文件,用於定義其使用的變量。其中一個變量爲用戶特定設置定義了一個文件夾,USERSET=%APPDATA%\foo1\foo2
。加班這些用戶設置可能會損壞。我希望能夠用批處理文件或腳本刪除這些文件夾。簡而言之,我想在一個目錄中搜索包含特定字符串的文本文件,該字符串設置指向文件夾的變量,獲取該變量的值並使用它刪除目錄。
這是我到目前爲止有:
for /f "tokens=2 delims==" %%G in ('dir /b /s c:\foo\*.txt ^| findstr /i /f:/ userset') do rd /s /q %%G
輸出看起來是這樣的:
H:\>rd /s /q %appdata%\foo1\foo2\USERSET
The system cannot find the file specified.
顯然%appdata%
不擴大?
當然,如果我只是在命令提示符下輸入rd /s /q %appdata%\foo1\foo2\USERSET
,它就可以工作。
我對其他語言開放,我大多熟悉Windows命令行。
感謝您的快速回復。我選擇這個答案是最好的,因爲它打開了我的想法,使用子程序。我遇到了額外的環境變量,例如CSIDL_APPDATA,它不會在命令提示符下展開。 – keNscale