@Nachalos

CMD Команда для создания папки для каждого файла и перемещения файла в папку?

Мне нужна команда, которую можно запустить из командной строки, чтобы создать папку для каждого файла (на основе имени файла) в каталоге, а затем переместить файл во вновь созданные папки.
Начальная папка:
BCJ-042102_1.jpg
BCJ-042102_2.jpg
BCJ-042102_3.jpg
DZPB-049001_1.jpg
DZPB-049001_2.jpg
DZPB-049001_4.jpg
BLN-021301_2.jpg
BLN-021301_3.jpg

Чего я хочу достичь:
C:\BCJ-042102\BCJ-042102_1.jpg
C:\BCJ-042102\BCJ-042102_2.jpg
C:\DZPB-049001\DZPB-049001_1.jpg
C:\DZPB-049001\DZPB-049001_2.jpg
и т.д.
В основной папке более 5т картинок.
Может ли кто-нибудь помочь мне с командой, чтобы сделать все это?
  • Вопрос задан
  • 1823 просмотра
Решения вопроса 1
wisgest
@wisgest
Не ИТ-специалист
Получение из строки части до знака подчёркивания:
for /f "delims=_" %J in ("стро_ка") do  rem Что то делаем с %J - частью строки до "_"

В вашем случае:
for %I in (*.jpg) do  for /f "delims=_" %J in ("%I") do (
	if not exist "%J\"  md "%J"
	move "%~I" "%J\"
)

— скопируйте целиком и вставьте в консоль с CMD.EXE, запущенном в режиме обработки команд из входного потока.
Или сохраните в командный файл, заменив все % на %%.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dir

 Directory of C:\Users\Serguei\AppData\Local\Temp\xxx

11/18/2020  09:46 AM    <DIR>          .
11/18/2020  09:46 AM    <DIR>          ..
11/18/2020  09:46 AM                 0 BCJ-042102_1.jpg
11/18/2020  09:46 AM                 0 BCJ-042102_2.jpg
11/18/2020  09:46 AM                 0 BCJ-042102_3.jpg
11/18/2020  09:46 AM                 0 BLN-021301_2.jpg
11/18/2020  09:46 AM                 0 BLN-021301_3.jpg
11/18/2020  09:46 AM                 0 DZPB-049001_1.jpg
11/18/2020  09:46 AM                 0 DZPB-049001_2.jpg
11/18/2020  09:46 AM                 0 DZPB-049001_4.jpg
              8 File(s)              0 bytes

команда
for /F %. in ('dir /b *.*') ; do mkdir %~n. && move /y %. %~n.

результат
dir

Directory of C:\Users\Serguei\AppData\Local\Temp\xxx

1/18/2020  09:47 AM    <DIR>          .
1/18/2020  09:47 AM    <DIR>          ..
1/18/2020  09:47 AM    <DIR>          BCJ-042102_1
1/18/2020  09:47 AM    <DIR>          BCJ-042102_2
1/18/2020  09:47 AM    <DIR>          BCJ-042102_3
1/18/2020  09:47 AM    <DIR>          BLN-021301_2
1/18/2020  09:47 AM    <DIR>          BLN-021301_3
1/18/2020  09:47 AM    <DIR>          DZPB-049001_1
1/18/2020  09:47 AM    <DIR>          DZPB-049001_2
1/18/2020  09:47 AM    <DIR>          DZPB-049001_4
              0 File(s)              0 bytes
C:\Users\Serguei\AppData\Local\Temp\xxx\BCJ-042102_1\BCJ-042102_1.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\BCJ-042102_2\BCJ-042102_2.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\BCJ-042102_3\BCJ-042102_3.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\BLN-021301_2\BLN-021301_2.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\BLN-021301_3\BLN-021301_3.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\DZPB-049001_1\DZPB-049001_1.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\DZPB-049001_2\DZPB-049001_2.jpg
C:\Users\Serguei\AppData\Local\Temp\xxx\DZPB-049001_4\DZPB-049001_4.jpg
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы