【发布时间】:2011-12-22 08:43:22
【问题描述】:
我正在尝试编写一个批处理脚本来获取(除其他外)计算机拥有的所有磁盘驱动器的列表。基本代码如下所示:
REM Build the list of disk drives to monitor
SETLOCAL enabledelayedexpansion
FOR /f "skip=1 tokens=1 delims=:" %%a in ('"WMIC logicaldisk WHERE drivetype=3 GET deviceid"') do (
SET "DISK_DATABASES=!DISK_DATABASES!%%a|"
SET "DRIVES_TO_MONITOR=!DRIVES_TO_MONITOR!%%a:\\|"
)
很明显,我构建了两个格式略有不同的列表以供以后使用。但是,当我运行它时,我得到的输出如下所示:
C|D|E||
C:\\|D:\\|E:\\|:\\|
现在,我希望在这两种情况下都有尾随管道,我可以做到这一点,但我真的很困惑为什么那里有一个额外的空白条目。如果我手动运行wmic 命令,我可以看到输出的末尾确实有一个空行,但我的理解是/f 是专门应该忽略空行的。
如果我打开ECHO,看起来最后一行只是作为回车/换行或类似的形式出现。有没有办法做我所期待的?我错过了什么吗?我试图在循环中写一个if 条件来排除最后一行,但它是......时髦而且从来没有工作过。感谢任何/所有帮助。
【问题讨论】:
标签: windows batch-file cmd wmic