批处理脚本:将文件移动到具有相似名称的相应文件夹中

批处理脚本:将文件移动到具有相似名称的相应文件夹中

我正在尝试建立无纸化诊所并以电子方式存储所有患者数据。我已经创建了 8000 个文件夹 (1 - 8000),现在需要将大约 16000 个 .pdf 文件移动到相应的文件夹中,例如“202 医疗救助卡”、“202 医生转诊单”、“202 病假条”需要移动到文件夹“202”。所有文件都存储在一个文件夹中。

先感谢您。

答案1

如果你的情况简单,那么您应该继续发出类似于以下内容的操作系统命令:

MOVE 202* 202\

等等。

答案2

扩展该问题的其他当前答案:

  1. 在纯文本编辑器(例如 Windows 记事本)中打开一个新的文本文档并复制以下批处理指令:

    FOR /L %%G IN (1,1,8000) DO (
        MOVE ".\%%G *" ".\%%G\"
        )
    
  2. 将此文件保存为 ex. sort_files.bat

  3. 将此.bat文件放在与您想要排序的文件相同的文件夹中。

  4. sort_files.bat通过双击它或从命令行执行它来运行。

注意事项

  • .\%%G *假设文件名格式为例如。202 Medical Aid Card如果您漏掉了空格(即.\%%G*),您的文件将无法正确排序,最终会得到巨大的头痛(所以不要这样做!=P)。

  • .\%%G\假设您现有的文件夹与您的文件位于同一目录中。如果不是,请将其替换.为您的文件夹目录的实际路径(例如C:\path\to\folder\directory\%%G\)。

  • 在表达式中(1,1,8000),最后一个值(例如8000)决定总共处理多少个循环。在提交之前,您可能需要考虑先减少(1,1,8000)到可管理的数量(例如)以测试批处理文件(并检查任何结果) 。(1,1,10)(1,1,8000)


笔记

  • %%G是用于计数循环的批处理变量。在循环处理过程中,它会被替换为数字。因此MOVE ".\%%G *" ".\%%G\"变为 ex. MOVE ".\1 *" ".\1\"

  • 在命令中MOVE ".\%%G *" ".\%%G\"

    • 从技术上讲,仅当路径包含空格(例如".\%%G *")时才需要使用引号,但为了保持一致性,在源路径(.\%%G *)和目标路径(.\%%G\)中都应使用引号。

    • .是“当前目录”的简写形式。

    • *是通配符。因此,例如,.\%%G *翻译为“当前目录中以%%G(例如1)开头,后跟空格和任何其他字符(*)的任何文件”。


参考

相关内容