-1

У меня есть корневая папка: C:\Users\username\Desktop\New, которая содержит файлы .mp3 с такими именами:

20162406_3346_234958_ 97270 791720411

20162305_3315_163017_ 97620 734220699

Я попытался создать пакет, который бы сортировал их по первым 5 цифрам 4-й серии чисел (в данном случае 97270 или 97620), создавал папки с такими именами и затем перемещал все файлы в свою конкретную папку.

Вот что я придумал:

@ECHO OFF

SETLOCAL ENABLEDELAYEDEXPANSION

set "sourcedir=C:\Users\username\Desktop\New folder"

for /f "tokens=1,2,3,4 delims=_" %%a in ('dir /b /a-d *_*_*_*.mp3') do (

set x= %%d

set y= !x:~1,5!

mkdir "!y!" 2>nul

move "%%a_%%b_%%c_%%d" "!y!"

)
endlocal

Оно работает! но я хотел бы знать, как добавить текст в имена папок, например, создать папку с именем:

97270 - Бла Бла Бла или

Бла Бла Бла - 97270

«Bla Bla» не должен зависеть от чего-либо, взятого из имени файла, скорее, он должен быть установлен пользователем при отказе от пакета.

Мне не удалось найти правильный синтаксис для него.

1 ответ1

-1

После проверки некоторых других тем о SuperUser, SS64 и других случайных сайтах, найденных с помощью поиска Google, я решил, что буду использовать команду «переименовать» в комбинации с «IF» и «Else».

Вложить «IF» и «Else» было не так просто, поэтому я отбросил «Else» и использовал только «IF» - это сработало!

'for /f %% a in (' dir /b /d * ') do (

ЕСЛИ %% a EQU 97270 (переименуйте «%% a» в «%% a - Ручки и расчет заработной платы»)

ЕСЛИ %% a EQU 97730 (переименуйте "%% a" "%% a - Informare ERB")

ЕСЛИ %% a EQU 97720 (переименуйте "%% a" "%% a - Lost")

ЕСЛИ %% a EQU 97620 (переименуйте "%% a" "%% a - Кредитные карты")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .