【问题标题】:Windows 7 Batch - Create subfolder, then find files with certain text in file name and move those files in the newly created subfolderWindows 7 Batch - 创建子文件夹,然后在文件名中查找具有特定文本的文件并将这些文件移动到新创建的子文件夹中
【发布时间】:2014-05-14 06:46:21
【问题描述】:

尽我最大的努力寻找解决方案,但接近我需要的是这个不起作用的示例。 Bash: Moving multiple files into subfolders

我不是程序员,因此无法自己为 Windows 7 创建批处理文件。我们将不胜感激。


执行以下操作的批处理文件所需的代码:-

  1. 在文件夹中搜索文件名中包含“_F1”的所有文件
  2. 在此文件所在的位置创建一个名为“F1”的子文件夹
  3. 将步骤 1 中搜索到的所有文件移动到步骤 2 中创建的文件夹“F1”

理想情况下,批处理文件应从父文件夹执行,并应完成所有子文件夹中的 3 个步骤,至少到父文件夹下 3 级。


在此先感谢您的帮助。


我尝试并想出了这个。有效,但非常原始。需要从每个文件夹(其中 100 个)内部手动运行

MKDIR F1 

MKDIR F2 

DO 500

move *_F1*.* F1

move *_F2*.* F2

ENDDO

【问题讨论】:

  • batch(如在 Windows 中)或bash?
  • @AdrianFrühwirth 对不起,我的意思是 Windows 的批处理文件
  • 我遵循这里的要求,但措辞有点奇怪。如果您显示文件夹内容的树形视图会有所帮助。例如开始条件:folder1包含boo、bar、baz、boo_f1、boo_f2、bar_f1、bar_f2、bar_f1_not;结束条件:想要包含 boo、bar、baz、bar_f1_not、folder2/ 的文件夹 1; folder2 包含 boo_f1、boo_f2、bar_f1、bar_f2

标签: windows batch-file directory move


【解决方案1】:

试试这样:

@echo off
for /f "delims=" %%a in ('dir /s/b/a-d *.* ^| find /i "_F1"') do (
if not exist "%%~dpaF1" md "%%~dpaF1"
move "%%~fa" "%%~dpaF1")

【讨论】: