Пакетное создание папок на основе расширения и перемещение в них файлов.
У меня есть структура каталогов, которая выглядит следующим образом:
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