我(遗憾的是)有数千个文件需要重新组织成不同的文件夹方案。 我的所有文件都遵循以下模式:
d:\mainfolder\0001.pic\AMY_CAT_file1.jpg
d:\mainfolder\0001.pic\EVE_CAT_file1.jpg
d:\mainfolder\0002.pic\AMY_BIRD_file2.jpg
d:\mainfolder\0002.pic\EVE_BIRD_file2.jpg
我正在寻找的是一个* .bat文件,可以将文件移动到这样的文件夹中:
...\CAT_\AMY\0001.pic\AMY_CAT_file1.jpg
...\CAT_\EVE\0001.pic\EVE_CAT_file1.jpg
...\BIRD\AMY\0002.pic\AMY_BIRD_file2.jpg
...\BIRD\EVE\0002.pic\EVE_BIRD_file2.jpg
换句话说,必须移动文件:
我意识到这可能听起来令人困惑,非常感谢任何帮助。
答案 0 :(得分:0)
1st to 3rd symbol
和5th to 8th symbol
是一个坏主意,因为名称可能有不同的长度(请参阅cat
,bird
,可能还有elephant
;或者Eve
,Amy
,可能还有Stephan
),但你有一个很好的下划线可以作为分隔符:
@echo off
setlocal EnableDelayedExpansion
cd /d "d:\mainfolder"
for /f "delims=" %%F in ('dir /s /b *.jpg') do (
for /f "tokens=1,2,* delims=_" %%A in ("%%~nF") do (
set folder=%%~dpF
for %%X in (!folder:~0^,-1!) do (
ECHO move "%%F" "...\%%B\%%A\%%~nxX\%%~nxF"
)
)
)