Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Экранирование восклицательного знака

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

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

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

Код: Выделить весь код
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!"

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

Отправлено: 21:15, 17-06-2015

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


А что, собственно, нужно? Удалить из названия файла символ "!"?
Код: Выделить весь код
@echo off
  for /f "tokens=1,2 delims=!" %%i in ('dir *!* /a-d /b /l') do (
    ren "%%i!%%j" "%%i%%j"
  )
exit /b

Последний раз редактировалось greg zakharov, 17-06-2015 в 21:44.


Отправлено: 21:37, 17-06-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:08, 17-06-2015 | #3


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
А что, собственно, нужно? Удалить из названия файла символ "!"? »
Ага , точно, ни как не могу удалить восклицательный знак из имени файлов.

Georgio, твой код хорошо отработал спс.

Собственно проблема как такова решена, всем спасибо!

Отправлено: 22:15, 17-06-2015 | #4


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 14:34, 02-11-2023 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Экранирование восклицательного знака

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Delphi - [решено] присвоить 2 знака из tedit crindlok Программирование и базы данных 4 07-02-2013 17:45
[решено] Наложение водяного знака на изображение centaurvv AutoIt 2 11-03-2011 02:06
VBS/WSH/JS - [решено] как к примеру получить только первые 4 знака переменной ? mitiya Скриптовые языки администрирования Windows 3 05-01-2011 14:21
Экранирование оператора mihan81 Хочу все знать 12 12-05-2009 14:15
СКС/Passive - Сетевой кабель. Заземление. Экранирование. Внешняя прокладка. Категории. Раскладка. Tat Сетевое оборудование 118 23-03-2007 22:55




 
Переход