Почему командная строка FOR l oop в Windows приводит к выполнению с ошибкой "... в это время было неожиданно"? - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь переименовать некоторые файлы, но продолжаю получать ошибки. Это то, что я выполняю как одну командную строку в командной строке Windows:

for /f %file in ('dir test*.tif') do (mv "$file" "${file:0:9}_${file:9}" )

Это ошибка, которую я получаю:

%file was unexpected at this time.

Я погуглил это и все Я могу обнаружить, что люди используют только один знак % в пакетных файлах или два знака %% в командной строке. Но я в командной строке и использую только один знак%. Даже следующее все равно дает мне ту же ошибку:

for /f %file in * do (echo 1 )

Обновление:

Не бери в голову. Я обычно пытаюсь найти какое-то «автоматизированное» решение даже для мелких вещей, но я потратил около трех часов, пытаясь выяснить это, и, наконец, просто переименовал 100+ файлов вручную. Прошло около 10 минут. Я продвинулся немного дальше, используя это

for %f in (dir *) do (rename "%f" %f:0,9_"%f:~9%")

. Это печатает «% f» правильно, но затем вместо извлечения символов с «% f: 0,9» просто печатает имя файла и добавляет: 0, 9 как текст. Я перепробовал кучу вариантов, но ничего не помогло.

...