Если у вас нет имен файлов, начинающихся с пробела, то
@echo off
for %%F in ("* *") do for /f "tokens=1* eol= delims= " %%A in ("%%F") do ren "%%F" "%%A %%B"
Приведенное выше будет обрабатывать один прогон любого количества последовательных пробелов и преобразовывать его в один пробел.
Если у вас несколько пробелов, вы можете просто проанализировать больше токенов. Вам не нужно беспокоиться о разборе большего числа токенов, чем существует, поскольку Windows автоматически удаляет конечные пробелы и точки из имен файлов. Можно обработать до 31 пробела (32 токена) с помощью одного FOR /F
, и просто справиться с 25 пробелами (токены от A до Z). Приведенный ниже код обрабатывает 9 пробелов, что, вероятно, более чем достаточно.
@echo off
for %%f in ("* *") do for /f "tokens=1-9* eol= delims= " %%A in ("%%f") do ^
ren "%%f" "%%A %%B %%C %%D %%E %%F %%G %%H %%I %%J"
Или, если вы получите JREN.BAT , гибридную утилиту переименования регулярных выражений JScript / batch , затем вы можете использовать:
jren " +" " " /fm "* *"
Решение JREN.BAT будет обрабатывать все экземпляры последовательных пробелов независимо от их количества.
Если вы используете JREN.BAT в другом пакетном сценарии, тогда вы должны использовать call jren
, чтобы управление вернулось к вашему сценарию.