【问题标题】:Batch move many .tif files from their directories to respective subdirectories (all named “R20m”)将许多 .tif 文件从它们的目录批量移动到各自的子目录(全部命名为“R20m”)
【发布时间】:2017-11-13 13:53:26
【问题描述】:

我正在尝试在批处理文件中移动许多 .tif 图像。我有很多带有子文件夹的文件夹,它们都具有相同的文件夹结构。我其中一个文件夹是一个始终具有相似名称的 .tif 文件(名称中包含“SCL”)。在该文件夹中还有一个子文件夹,其名称始终为“R20m”。我想将所有这些 .tif 图像移动到它们各自的 R20m 子文件夹中。我被语法困住了。这是我目前所拥有的:

for /r %%g in (*_SCL_*.tif) do Move %%g "%%~dp\R20m"

我不知道如何将 for 循环的当前驱动器和/或路径与 R20 文件夹名称结合起来。

【问题讨论】:

    标签: loops recursion cmd move


    【解决方案1】:

    你很亲密。您只是省略了要扩展的 for 循环变量名称。这行得通吗?

    for /r %%g in (*_SCL_*.tif) do Move "%%~g" "%%~dpgR20m\"
    

    检查新目录是否存在。

    for /r %%g in (*_SCL_*.tif) do (IF EXIST "%%~dpgR20m\" (Move "%%~g" "%%~dpgR20m\"))
    

    【讨论】:

    • 嗯,这确实将原始文件移动到子文件夹中,但它会从中创建一个没有扩展名的文件,称为 R20。如果我像这样在代码末尾添加扩展名:“%%~dpgR20m.tif”,则文件不会移动,只会重命名,并且会保留在同一位置。不知道如何移动它,保留文件名和扩展名?
    • 在它要移动到的目录末尾指定一个反斜杠怎么样?请参阅修改后的答案。
    • 非常好,这就是我正在寻找的解决方案。谢谢好心的先生!
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多