批处理文件字符串格式化,wmic问题



基本上,我正在尝试编写一个批处理文件,该文件循环遍历每个本地驱动器并搜索文件。我的问题特别涉及到连接文件路径。

在我的代码中我有一个filename和一个driveletter。我想要的输出是driveletterfilename

我能够单独回显文件名和文件路径,但是当我尝试将它们组合以获得driveletterfilename时,驱动器号为空。我已经读到wmic结果在文本末尾的回车,但没有建议的修复似乎有帮助。

下面是显示问题的简化版本代码:

@echo off
setlocal EnableDelayedExpansion
set filename=helloworld.txt

for /f "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do (
SET driveletter=%%d
echo %%d
echo !driveletter!
echo !driveletter!!filename!
DIR /s !driveletter!!filename!)
pause

"works always way"(在另一个for中处理输出以摆脱回车):

for /f "tokens=2 delims==" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do for %%i in (%%d) do echo -%%i-

"works for this special case way"(获取一个没有回车符的令牌;此处:在=:之间,然后重新添加:):

for /f "tokens=2 delims==:" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo -%%d:-

第二个问题是,您必须考虑每一个wmic输出,如何获得一个不是该行最后一个的令牌,但它可能更好读。

最新更新