我有一个如下所示的目录结构:
Folder A
A.PDF
A_1.TIF
A_2.TIF
A_3.TIF
Folder B
B.PDF
B_1.TIF
B_2.TIF
B_3.TIF
Folder C
C.PDF
C_1.TIF
C_2.TIF
C_3.TIF
我想要做的是让脚本将 PDF 和 TIFF 排序到具有特定标题的单独文件夹中,例如:
Folder A
Representation_1
A.PDF
Preservation_1
A_1.TIF
A_2.TIF
A_3.TIF
我使用以下脚本读取文件的名称,并根据文件名中的字符串将它们分类到新文件夹中。我希望它可以被改造以执行相同的操作,但使用文件扩展名:
@echo off
setlocal EnableDelayedExpansion
REM Put here the path where the files are:
set "Source=%~dp0"
for %%a in ("%Source%\*") do (
set "File=%%~na"
for /d %%b in ("%Source%\*") do (
set "Folder=%%~nb"
If "!File:~0,18!"=="!Folder:~0,18!" Move "%%a" "%%b"
)
if Exist "%%a" md "!Source!\!File:~0,18!"& move /y "%%a" "!Source!\!File:~0,18!"
)
答案1
如果我没理解错的话,应该是这样的。浏览源的子文件夹,如果子文件夹中有 pdf 文件,则创建一个名为 Representation_1 的文件夹,并将所有 pdf 文件移动到此文件夹。如果有 tiff 或 tif 文件,则将它们移动到子文件夹内名为 Preservation_1 的文件夹中。
@echo off
set Source=%userprofile%\desktop\test
pushd "%Source%"
for /f "delims=" %%a in ('dir /b /ad *') do (
dir "%%a\*.pdf">nul && if not exist "%%a\Representation_1" md "%%a\Representation_1"
dir "%%a\*.tif*">nul && if not exist "%%a\Preservation_1" md "%%a\Preservation_1"
for /f "delims=" %%b in ('dir /b /a-d %%a\*') do (
if /i "%%~xb"==".pdf" move "%%a\%%~b" "%%a\Representation_1"
if /i "%%~xb"==".tiff" move "%%a\%%~b" "%%a\Preservation_1"
if /i "%%~xb"==".tif" move "%%a\%%~b" "%%a\Preservation_1"
)
)
popd
exit