【问题标题】:CMD for unable to move files due to string butchering由于字符串屠宰而无法移动文件的 CMD
【发布时间】:2013-12-25 13:00:34
【问题描述】:

我正在尝试格式化我的 USB 记忆棒,以便在我的汽车中用作音乐数据库。 但是,我的收音机一次只能播放一个文件夹,所以我认为将艺术家的所有标题移动到艺术家的文件夹会很有帮助。

因为这就像 32GB 的音乐,需要大量的手工工作。

我想出了以下脚本来完成这项工作(G:\ 是 USB 驱动器)

FOR /F %%T IN ('dir G:\ /B /A:D') DO (
    FOR /R %%D IN (G:\%%T\*.*) DO MOVE "%%d" "G:\%%T"
)

到目前为止,这是可行的,但'dir G:\ /B /A:D' 命令最终会以这种方式删除文件夹名称:“文件夹名称”->“文件夹”。所以它本质上只是出于某种原因拿起了第一个词。

请帮忙。

【问题讨论】:

    标签: string batch-file for-loop cmd


    【解决方案1】:

    FOR 元变量是批处理中为数不多的区分大小写的位置之一。 %%D mst 匹配 %%d - 反之亦然。

    (但您最好在 FOR/f 和元变量之间包含 "delims="...)以确保将整个字符串分配给元变量。

    【讨论】:

      【解决方案2】:

      改变你的外部 FOR 命令:

      for /f "tokens=*" %%T in ('dir /b /a:d "G:\"') DO (
       ...
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 2020-01-25
        • 1970-01-01
        相关资源
        最近更新 更多