1
在批處理文件中,我試圖獲取命令的輸出並將其保存到變量中。將命令輸出保存到變量
我的命令的目標是計算某個文件夾中的文件夾數量。
- 我不能使用this接受的答案提供的伎倆,因爲我會做
cd path\to\my\folder
才能到當前目錄。不幸的是,我不能執行這個命令,因爲path\to\my\folder
實際上是一個UNC路徑(\\path\to\my\folder
),並且windows cmd不支持cd \\some\UNC\path
。 - 我知道this答案,但我不想使用臨時文件。
於是,我就做到以下幾點:
要獲得文件夾的數量,我用:
dir \\path\to\my\folder | find /c "<REP>"
能正常工作並返回我一個號碼,我會期待。
要獲取此命令的批處理變量輸出,我想:
FOR /F "TOKENS=*" %%i IN ('\\path\to\my\folder | find /c "<REP>"') DO SET value = %%i
但沒有成功,該錯誤信息是...
|出乎意料。
...當我執行批處理文件,並...
%%我是出乎意料的。
當我嘗試直接在命令窗口中執行命令。我試圖擺脫
<REP>
字符串(...find /c ""<REP>""') DO...
)附近的引號,給我同樣的錯誤。
我在正確的路徑檢索變量的輸出嗎?我該怎麼做才能解決錯誤信息?
或者也許有一種更簡單的方法來設置變量中的命令輸出?
解決您所遇到的問題:| 1)''應該像這樣這方面轉義:'^ |',和2)'%% i'是僅在批處理文件中使用,'%i'是其在命令提示符下直接使用的對象。 –
[Capture輸出命令CMD]的可能重複(http://stackoverflow.com/questions/14646575/capture-output-command-cmd) – aschipfl