我正在尝试编写一个批处理脚本,其中包括获取计算机上所有磁盘驱动器列表的功能。基本代码看起来像这样:
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
条件来排除这个最后一行,但它很奇怪,从来没有起作用。感谢任何/所有帮助。