Я хочу создать пакетный скрипт для перемещения моих файлов в соответствующую папку в соответствии с их идентификатором.
пример:
имя файла E: \ folderPath \ Pre001Post.csv, будет перемещено в папку E: \ folderPath \ M001 \
001 - это идентификатор, «Pre» и «Post» были случайными, 2 ноля было ведущим для числа меньше 10.
имя файла E: \ folderPath \ Pre099Post.csv, будет перемещено в папку E: \ folderPath \ M099 \
099 - это идентификатор, «Pre» и «Post» были случайными, 1 ноль приводил к числу меньше 100.
имя файла E: \ folderPath \ Pre109Post.csv, переместится в папку E: \ folderPath \ M109 \
109 - идентификатор, «Pre» и «Post» были случайными.
ниже был мой сценарий,
@setlocal enabledelayedexpansion
for /l %%S in (1, 1, 111) do (
IF %%S LSS 10 ( SET z=00%%S ) ELSE (goto:moveFileProcess)
IF %%S LSS 100 ( SET z=0%%S ) ELSE (goto:moveFileProcess)
:moveFileProcess
echo !z!
echo %z%
MOVE /Y E:\folderPath\???%z%????.csv E:\folderPath\M%z%\
)
Проблема заключалась в том, что я не смог установить значение переменной %% s равным z (с ведущим 00).
Я следовал Пакетные файлы Windows: что такое расширение переменных и что означает EnableDelayedExpansion? для добавления @setlocal enabledelayedexpansion, но его по-прежнему не удается. Кто-нибудь знает, в какой части я ошибся?