考慮到與以下文件的目錄PUT命令輸出到一個變量
image1.txt
image2.txt
image3.txt
我想要得到的最早的文件(讓文件的數據進行排序,oldset日期在前):
dir /b /od c:\test\image?.txt | findstr ^1
手動將其輸入cmd.exe時效果很好。現在(在批處理腳本中)我想把這個命令的輸出放在一個變量中。我怎樣才能做到這一點?謝謝!
更新: 想知道是否有一個直接的方式沒有使用循環?
考慮到與以下文件的目錄PUT命令輸出到一個變量
image1.txt
image2.txt
image3.txt
我想要得到的最早的文件(讓文件的數據進行排序,oldset日期在前):
dir /b /od c:\test\image?.txt | findstr ^1
手動將其輸入cmd.exe時效果很好。現在(在批處理腳本中)我想把這個命令的輸出放在一個變量中。我怎樣才能做到這一點?謝謝!
更新: 想知道是否有一個直接的方式沒有使用循環?
For /F %%A in ('"dir /b /od C:\test\image*.txt|findstr ^1"') do set myVar=%%A
你可以做到這一點通過For循環,嘗試在命令行中,我只是測試它,它工作正常
輸出:
set myVar=image1.txt
在命令行上執行Set時,您可以看到:
myVar=image1.txt
NUMBER_OF_PROCESSORS=2
有沒有直接的方式,FOR-Loop是一種方式或其他方式是設置/ p與臨時文件。
dir /b /od c:\test\image?.txt | findstr ^1 > oldest.tmp
< oldest.tmp set /p myVar=
我也希望在發佈之前發現這種行爲,但它不會以其他命令的輸出方式工作 – 2012-04-12 20:15:55
而且它不起作用。 cmd.exe只會將'variableName'設置爲'dir/b/od C; \ test \ image?.txt',但不會執行它。但是由於有一個管道,它會在新的cmd-context中執行'findstr 1'。最後,即使'variableName'也是空的。 – jeb 2012-04-12 20:40:00