Объединить несколько каталогов в один, названный в соответствии с общим префиксом каталога - PullRequest
0 голосов
/ 21 ноября 2018

Я создал командный файл для переименования каталогов в строку, предшествующую -, но теперь возникает проблема:

Допустим, например, у меня были следующие папки:

Наруто - 480p
Наруто - 720p
Наруто - 1080p

Я хочу иметь только один каталог с именем Naruto, который содержит содержимоеэти три каталога.

Я использую этот пакетный файл:

for /f "tokens=1*delims=-" %%a in ('dir /b "*-*.*"') do ren "%%a-%%b" "%%a%%~xb"

… но даже с пакетным файлом результирующие каталоги выглядят так:

Наруто
Наруто - 720p
Наруто - 1080p

Как объединить три каталога в один, который будет называться Naruto?

1 Ответ

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

Если я правильно понял, вы хотите объединить эти три папки.Это невозможно на языке пакетных файлов, поэтому вам нужно переместить содержимое двух папок в одну, удалить их и переименовать оставшуюся папку.Это способ, которым вы можете сделать это:

@echo off
:: Batch script that merges 3 folders into one!
:: We assume that these 3 folders are located in C:\ .

for /R C:\Naruto-480p %%a IN (*.*) do move "%%a" C:\Naruto-1080p
for /R C:\Naruto-720p %%b IN (*.*) do move "%%b" C:\Naruto-1080p
rd Naruto-480p Naruto-720p
rename Naruto-1080p Naruto

Теперь давайте разберем программу пакетного файла:

Строки, начинающиеся с ::, являются комментариями, они игнорируются.На самом деле это недопустимые метки.

for /R C:\Naruto-480p %%a IN (*.*) do @move "%%a" C:\Naruto-1080p и for /R C:\Naruto-720p %%b IN (*.*) do @move "%%b" C:\Naruto-1080p.for - это цикл, как вы уже знаете.Опция /R указывает циклу проходить через все подпапки папки, указанной в начале (C: \ Naturo-480p и C: \ Naruto-720p соответственно).IN (*.*) означает обработку ВСЕХ найденных файлов и, наконец, перемещение каждого файла.

rd Naruto-480p Naruto-720p удаляет папки Naruto-480p и Naruto-720p.

rename Naruto-1080p Naruto переименовывает папку.

Я надеюсь, что это поможет вам избежать неприятностей: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...