批量文件字符串格式化,wmic问题?

时间:2015-08-03 15:52:47

标签: batch-file

基本上,我试图编写一个循环遍历每个本地驱动器并搜索文件的批处理文件。我的问题特别适用于连接文件路径。

在我的代码中,我有filenamedriveletter。我想要的输出是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

1 个答案:

答案 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>