Создание подкаталогов с использованием первых 2 символов имени файла в командном файле - PullRequest
0 голосов
/ 15 ноября 2010

Я пытаюсь создать пакетный файл, который будет зацикливать список JPG / PNG в папке и создавать подкаталоги, используя первые 2 символа этих имен изображений. После создания подкаталогов оно переместит изображение в правильную подпапку.

Например, ABC.jpg и DEF.png создадут AB и DE и переместят ABC.jpg в AB, а DEF.png в DE.

У меня проблема с извлечением первых 2 символов и созданием подкаталогов. Вот соответствующий код, который у меня есть:

for %%A in (*.jpg,*.png) do (

  set _xx=%%A

  md %_xx:~0,2%
)

[Обработка ошибок / дублирования, и само перемещение файла было удалено для ясности]

Вывод переменной _xx не показывает присвоенного ей значения, однако вывод %% A дает правильное имя файла.

Запуск этого сценария фактически создает 2 подкаталога с именами '2' и '~ 0'

Есть предложения?

1 Ответ

2 голосов
/ 15 ноября 2010

Вам нужно использовать

setlocal enabledelayedexpansion

вверху файла, а затем вместо

md %_xx:~0,2%

использовать

md !_xx:~0,2!
...