【问题标题】:Batch file string formatting, wmic issue?批处理文件字符串格式化,wmic 问题?
【发布时间】:2015-08-03 15:52:46
【问题描述】:

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

在我的代码中,我有一个 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

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    “始终有效”(在另一个 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-
    

    “适用于这种特殊情况的方式”(获取不带回车的令牌;这里:在=: 之间,重新添加:afterwards):

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多