Создание подкаталогов с использованием первых 2 символов имени файла в командном файле
Я пытаюсь создать пакетный файл, который будет зацикливать список JPG /PNG в папке и создавать подкаталоги, используя первые 2 символа этих имен изображений. После создания подкаталогов оно переместит изображение в правильную подпапку.
Например, ABC.jpg и DEF.png создадут AB и DE и переместят ABC.jpg в AB, а DEF.png в DE.
У меня проблема с извлечением первых двух символов и созданием подкаталогов. Вот соответствующий код, который у меня есть:
for %%A in (*.jpg,*.png) do (
set _xx=%%A
md %_xx:~0,2%
)
[Обработка ошибок / дублирования, и само перемещение файла было удалено для ясности]
Вывод переменной _xx не показывает присвоенного ей значения, однако вывод %%A дает правильное имя файла.
Запуск этого скрипта фактически создает 2 подкаталога с именами "2" и "~0".
Какие-либо предложения?
1 ответ
Вам нужно использовать
setlocal enabledelayedexpansion
в верхней части файла, а затем вместо
md %_xx:~0,2%
использование
md !_xx:~0,2!