Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Как убрать из названий файлов и папок восклицательный знак?

Аватара для Oleg48

Старожил


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

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


Проблема такая, есть папка(-и) в названии которой(-ых) присутствует восклицательный знак, в этих(-ой) папке (-ах) естественно находятся файлы в названиях которых присуствует восклицательный знак. Хотелось как-нибудь разрулить эту тему т.е. После работы скрипта восклицательный знак должен отсуствовать как в названиях папок также и в названиях файлов которые храняться в этих папках, кстати до работы скрипта в папках храняться файлы в названии которых есть восклицательный знак и файлы название которых неподпорченно этим знаком (!).
Не знаю как подступится к этому скрипту, однако знаю что восклицательный знак можно экранировать, толи так ^!^ , толи так ^! . Подскажите в каком направлении двигать мысль, или скрипт подкинте, буду очень благодарен!!!

Отправлено: 02:08, 05-08-2010

 

Аватара для El Sanchez

Ветеран


Contributor


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

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


Oleg48,
Код: Выделить весь код
@Echo Off
Set Source=C:\Source!

Set RenameSource=%Source:!=%
For /F "Tokens=*" %%A In ("%RenameSource%") Do Ren "%Source%" "%%~nA" 2>nul&&^
For /F "Tokens=*" %%A In ('Dir /B /A-D "%RenameSource%"') Do Call :Func "%%A"
GoTo :EOF

:Func
	Set FileName=%~1
	Set FileName=%FileName:!=%
	Ren "%RenameSource%\%~1" "%FileName%" 2>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:48, 05-08-2010 | #2



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

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


Аватара для Oleg48

Старожил


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

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


El Sanchez, спасибо за такое быстрое решение, к этому принципу я тоже подгребал -
Код: Выделить весь код
Set RenameSource=%Source:!=%
Остальные строки мне очень интересны, есть куда рости. Только некоторые вещи недопонял : %%~nA и вот эти выводы 2>nul&&^ и 2>nul . Если не влом подскажите простым языком, пожалуйста непеняйте на help. А так полный респект и уважуха за ответ

p.s. Я заметил что Вы любите использовать в своих скриптах For /F , надо будет тоже попробывать.

Отправлено: 14:32, 05-08-2010 | #3


Пользователь


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

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


Oleg48,

Цитата Oleg48:
Только некоторые вещи недопонял : %%~nA и вот эти выводы 2>nul&&^ и 2>nul »
%%~nA - синтаксическая конструкция, позволяет из переменной %%А (представляющей собой имя файла с полным путем к нему) выделить только само имя, без расширения. Все конструкция можно посмотреть cmd>For /?

2>nul - "2" дескриптор ошибки отработки команды, в данном случае перенапрявляется в nul, т.е. в никуда

&& - символ условной обработки, разрешает запуск команды, стоящую за собой, только если команда, стоящая перед ним была выполнена успешно (противоположность ||)
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:45, 05-08-2010 | #4



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
восклицательный знак после иистоляции! geeg Непонятные проблемы с Железом 9 13-07-2017 07:32
Разное - Как убрать восклицательный знак с значка подлючения к сети? Fokus Microsoft Windows 7 9 13-06-2010 22:30
Драйвер - [решено] Восклицательный знак на "Другие устройства -> IVT_Virtual_0000" kigerman Microsoft Windows 7 2 11-02-2010 14:46
HDD - Восклицательный знак Wbares Накопители (SSD, HDD, USB Flash) 1 19-08-2009 14:19
Интерфейс - Как вернуть отображение названий файлов и папок по старинке, в проводнике? The_Crystal Microsoft Windows 7 12 13-05-2009 09:14




 
Переход