你能帮我解决这个与我挣扎的简单任务吗?
这是场景。
我们有一个文件夹,我们称之为" Folder1",其中包含大量以六对数字命名的文件,如下所示
" 78 28 96 32 94 93.jpg"
" 52 67 30 29 63 40.jpg"
" 17 33 07 11 08 00.jpg"
" 16 34 33 05 41 53.jpg"
在这个文件旁边,我们有来自" 00"的文件夹。至" 99"。在每个文件夹中,我们都有另一组以相同方式命名的文件夹 所以,我们需要做的是将这些文件移到现有的文件夹中,根据其名称中的第4对和第5对数字,如下所示
" 78 28 96 32 94 93.jpg"应移至" Folder1 \ 32 \ 94 "
" 52 67 30 29 63 40.jpg"应移至" Folder1 \ 29 \ 63 "
" 17 33 07 11 08 00.jpg"应移至" Folder1 \ 11 \ 08 "
等等。
我们如何使用" Folder1"?中的批处理文件执行此操作 文件夹已经存在,我们只需要移动文件 谢谢!
答案 0 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\?? ?? ?? ?? ?? ??.jpg" '
) DO (
FOR /f "tokens=4,5delims= " %%p IN ("%%~na") DO (
ECHO MOVE "%sourcedir%\%%a" "%sourcedir%\%%p\%%q\"
)
)
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
执行与所提供的掩码匹配的文件的目录扫描,然后对找到的每个文件名的name
部分执行,选择代币4和5到%%p
和%%q
。
为了测试目的,所需的MOVE命令仅为ECHO
。 在您确认命令正确后,将ECHO MOVE
更改为MOVE
以实际移动文件。附加>nul
以取消报告消息(例如1 file moved
)