2014-01-28 41 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)