基本上,我试图编写一个循环遍历每个本地驱动器并搜索文件的批处理文件。我的问题特别适用于连接文件路径。
在我的代码中,我有filename
和driveletter
。我想要的输出是driveletter\filename
。
我可以单独回显文件名和文件路径,但是当我尝试将它们组合起来获取driveletter\filename
时,驱动器号为空。我已经在文本末尾的回车中读到了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
答案 0 :(得分:0)
"始终如一地工作" (处理另一个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-
"适用于这种特殊情况的方式" (获得没有回车的令牌;此处:=
和:
之间,之后重新添加:
:
for /f "tokens=2 delims==:" %%d in ('wmic logicaldisk where "drivetype=3" get name /format:value') do echo -%%d:-
第二个问题是,你必须考虑每一个wmic
输出,如何获得一个不是行中最后一个的标记,但它可能更好一点。< / p>