CMD/BAT - [решено] Экранирование восклицательного знака

Ответить
Аватара пользователя
Cosmogor

CMD/BAT - [решено] Экранирование восклицательного знака

Сообщение Cosmogor »

Всем привет Изображение

Вот застрял на экранирование спецсимвола "!"

Ну ни как не могу справиться с ним Изображение



Задача:

Имею папку с файлами в именах которых встречается восклицательный знак.

Нужно этот восклицательный знак удалить из имени файла.





Код:

Код: Выделить всё

chcp 1251>nul
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir "%CD%\*.*" /b /l') do (
set name=%%~nxa
set name=!name:^(=!
set name=!name:^)=!
set name=!name:^%%=!
set name=!name:^!=!      Вот здесь самая настоящая проблема
ren "%%a" "!name!"
)

И ни чем ведь не экранируется этот знак.

Все файлы которые имеют "!" игнорируются и не переименовываются, прямо беда.
Аватара пользователя
greg zakharov

Re: CMD/BAT - [решено] Экранирование восклицательного знака

Сообщение greg zakharov »

А что, собственно, нужно? Удалить из названия файла символ "!"?

Код:

Код: Выделить всё

@echo off
  for /f "tokens=1,2 delims=!" %%i in ('dir *!* /a-d /b /l') do (
    ren "%%i!%%j" "%%i%%j"
  )
exit /b
Аватара пользователя
Georgio

Re: CMD/BAT - [решено] Экранирование восклицательного знака

Сообщение Georgio »

Код:

Код: Выделить всё

@echo off
for /f "tokens=*" %%a in ('2^>nul dir/a-d/b/l') do (
 set name=%%a
 call set "name=%%name:(=%%"
 call set "name=%%name:)=%%"
 call set "name=%%name:!=%%"
 cmd/v/c ren "%%a" "!name:%%=!"
)
exit/b
Аватара пользователя
Cosmogor

Re: CMD/BAT - [решено] Экранирование восклицательного знака

Сообщение Cosmogor »

Цитата greg zakharov:



А что, собственно, нужно? Удалить из названия файла символ "!"?
CMD/BAT - [решено] Экранирование восклицательного знака




Ага , точно, ни как не могу удалить восклицательный знак из имени файлов.



Georgio, твой код хорошо отработал Изображение спс.



Собственно проблема как такова решена, всем спасибо!
Аватара пользователя
vivexce

Re: CMD/BAT - [решено] Экранирование восклицательного знака

Сообщение vivexce »

В папке откуда запускаю скрипт, нужно у всех файлов с расширением mp3 удалить из названий восклицательный знаки! Код выше не сработал(
Ответить

Вернуться в «Скриптовые языки администрирования Windows»