Кажется, никто не думал об этом геме, но вот как использовать% variable% внутри цикла FOR вместо переменной %%, чтобы вы могли манипулировать им.
поместите это в D: \ superrename.bat:
@echo off
set CURRFILE=%1
set CURRFILE=%CURRFILE:~6%
set CURRFILE=FREN%CURRFILE%
if "%1" == "" (
for %%F in (*) do call d:\superrename.bat %%F
) else (
echo we found %1 which will become %CURRFILE%
)
Это позволяет вам использовать обычные манипуляции с переменными внутри команды FOR (БЕЗ отложенного расширения). Я намерен удалить первые несколько символов имен файлов (в данном случае шесть символов) с переименованием. Должно быть установлено на внешней стороне, если в противном случае, если перед эхо, выход эхо будет отставать от одного выполнения FOR.
"мы нашли xntimer.ini, который станет FRENr.ini"
ограничения:
обратите внимание, что если %% F содержит пробел, то в пакетный файл передаются несколько параметров (% 2,% 3 и т. д. используются). Если кавычки пробуются, то CALL не будет работать правильно, говоря, что [второе слово] в настоящее время не ожидается.
Способ обойти это - указать% * вместо% 1 в обоих местах выше.
Второе ограничение: с командой FOR. он увидит некоторые из переименованных файлов и сделает их снова !!! Лучше всего использовать копию в другой каталог или тому подобное. (проблема может быть связана с ошибкой в https://superuser.com/questions/475874 ... в моем случае у меня было около 8 случайных элементов для исправления более 100 файлов.)
Удачного кодирования!