Переместить файлы с одинаковой начальной строкой в ​​папку с таким именем строки - PullRequest
0 голосов
/ 22 мая 2019

Итак, у меня есть набор файлов, которые выглядят примерно так:

[text A] (space) "(" [text 2].extension

пример:

Joe (Nice Guy) (1993) (v.1).abc
Joe (Bad Man) (2001) (File B).xyz

Я бы хотел сделать следующее:

Сканирование папки

Захват [текст А]. В приведенном выше примере: «Джо»

Создать папку с именем [text A]. Здесь "Джо"

Перемещает все файлы со строкой [text A] в папку.

Если файл не соответствует приведенной выше строке, просто оставьте его без создания папки и переместите.

Я бы хотел, чтобы это было независимым от расширения, поскольку у меня есть различные типы файлов (mp3 и т. Д.) Для этого сценария (установите расширение в начале пакетного файла).

Я всегда использую:

@echo off
for %%a in (*.*) do (
md "%%~na" 2>nul
move "%%a" "%%~na"
) 

но это освобождает 1 папку для 1 файла. Я не могу отредактировать его так, как я хочу. Извините, я не очень хорош.

Я использую Windows 10.

1 Ответ

0 голосов
/ 22 мая 2019

Просто добавьте дополнительный цикл FOR / F для анализа первого токена каждого имени файла.

for %%F in (*) do for /f "delims=(" %%A in ("%%~nF") do (
  md "%%A" 2>nul
  move "%%F" "%%A"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...