我正在尝试编写一个批处理脚本,以获取(除其他外)计算机拥有的所有磁盘驱动器的列表。基本代码如下所示:
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
在循环中编写一个条件来排除最后一行,但它是......时髦而且从未奏效。我感谢任何/所有帮助。