基本上,我正在尝试编写一个批处理文件,该文件循环遍历每个本地驱动器并搜索文件。我的问题特别涉及到连接文件路径。
在我的代码中我有一个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
输出,如何获得一个不是该行最后一个的令牌,但它可能更好读。