2014-01-28 71 views
5

我怎樣才能得到驅動器從A到Z的有效驅動器號在Windows命令行(cmd.exe)中的「for循環」?For循環CMD ...如何循環A到Z(驅動器號)

例子,列出一個驅動器的根文件夾中的所有文件,應該是這樣的(概念):

for %f in (A..Z) do dir %f:\

或aproximating現有功能:

for /L in (A, Z, 1) do echo %f:\

+1

你沒有解釋你正在嘗試做什麼,但也許這是你實際上在尋找的是:[如何通過Windows外殼獲取系統上的驅動器號列表(bat,cmd)?](http://serverfault.com/questions/62578/how-to-get-a通過一個windows-shell-bat-cmd -d-drive-letters-on-a-system-through-a-windows-shell-bat-cmd) –

+0

我想要做的就是它在問題中所說的......獲得有效的驅動器從命令控制檯A到Z的字母...以簡單的方式可能...最好不使用PowerShell,WMI,任何第三方實用程序...爲了更好地理解,我將發佈如何獲得我想要的答案與WMI ... – ZEE

+0

我發現最好的方式是使用WMI wmic卷獲得「標題」 只給出了有效的驅動器號...仍然在尋找一種方法來做到這一點沒有外部工具/庫/模塊(如WMI) – ZEE

回答

7

關閉,但它的更像這樣。

for %%p in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if not exist %%p:\nul set FREEDRIVELETTER=%%p 

編輯:這裏是一個PowerShell的方式,不知道是否偏離主題爲您的需求

循環的大寫字母

65..90 | foreach {[char]$_;Write-Host "Do Something"} 

或小寫字母

97..122 | foreach {[char]$_;Write-Host "Do Something"} 

也許這將從批處理文件中工作。

@ECHO OFF 
start /b /wait powershell.exe "97..122 | foreach {$a=[char]$_ ;dir $a:\}" 
PAUSE 
+0

這是我試圖簡化的那個... 感謝任何方式... ;-) – ZEE

+0

還沒有看到純批量版本更簡單,添加了一個PowerShell的一個以防萬一。 –

+0

我試圖儘可能保持從powershell的方式......但你建議char(97..122)的解決方案是我期待得到一個* .cmd文件!謝謝你的線索...... – ZEE

0

我發現最好的方法是使用WMI

WMIC量得到「標題」

只給出有效的驅動器字母... 仍在尋找一種方式來做到這一點無需外部工具/ libs/modules(像WMI)