Автоматически создавать папки на основе строки в имени файла - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужен командный файл, чтобы создать процесс для большого списка (2 КБ) файлов TIF в каталоге локальной папки.

Структура имени файла, например: 12345_1.tif.

Мне нужен пакет для:

1 - Создать имя папки на основе номера (ов) после подчеркивания, так как это единственная константа в именовании.Папки только на основе этого единственного номера.

2 - Скопируйте и переместите файл во вновь созданную папку.

В приведенном выше примере пакет создаст папку с именем 1, а затем переместитфайл 12345_1.tif в эту папку.Если он найдет другой файл, такой как 54321_1.tif, этот файл также будет перемещен в папку «1».В моих файлах числа после _ находятся в диапазоне от 1 до 77, и может быть несколько файлов с одинаковым номером после _.

Я наблюдал некоторые подобные сценарии в Интернете, но мне нужна помощь для изменениямое требованиеМожно ли изменить это для удовлетворения моих требований?

@echo off &setlocal
for /f "delims=" %%i in ('dir /b /a-d *.PDF') do (
    set "filename1=%%~i"
    setlocal enabledelayedexpansion
    set "folder1=!filename1:~11,6!"
    mkdir "!folder1!" 2>nul
    move "!filename1!" "!folder1!"
    endlocal
)

1 Ответ

0 голосов
/ 21 ноября 2018

Кажется, вы не поняли мой комментарий , поэтому я публикую его здесь как ответ с полным кодом:

@echo off
for /F "tokens=1,2 delims=_." %%a in ('dir /B *.tif') do (
   md "%%b" 2>NUL
   move "%%a_%%b.tif" "%%b"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...