|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Спецсимволы при перенаправлении |
|
CMD/BAT - Спецсимволы при перенаправлении
|
Новый участник Сообщения: 5 |
В общем возникла проблема при написании батника:
считываю построчно текстовый файл и перенаправляю строки в другой тестовый файл, но проблема в том что в файле некоторые строки содержат спецсимволы (<>&) и при перенаправлении, через обычное echo возникают ошибки. Можно ли как-то за экранировать эти символы, что бы в новый файл все записалось как надо?? Вот часть скрипта: @echo off for /f "tokens=* delims=" %%a in (c:\12.txt) do call :Change "%%a" :Change set Text=%~1 echo %~1|findstr "43" > nul if %errorlevel% == 0 ( (echo VarC=200)>> c:\newfile.txt ) else ( echo %Text% >> c:\newfile.txt ) |
|
Отправлено: 22:26, 14-04-2012 |
Старожил Сообщения: 415
|
Профиль | Отправить PM | Цитировать CyberMuesli, автор указывает, что чтение происходит из текстового файла, и сколько там спецсимволов, и есть ли они - заранее не известно. О экранировании через '^' уже написано во втором сообщении, но это не выход - не редактировать же каждый раз исходный файл перед обработкой?
Цитата H1ghlander:
|
|
Отправлено: 03:10, 21-05-2012 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 207
|
Профиль | Отправить PM | Цитировать Цитата Anonymоus:
Я не проверял с чтением из файла. Зато я проверил на простом echo. При наличии символов <&> echo %A% работает неправильно, а echo !A! работает правильно. Быть может, предварительное чтение файлов что-то меняет... Вечером проверю |
|
------- Отправлено: 16:00, 21-05-2012 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать А при наличии символов «!»?
|
Отправлено: 16:14, 21-05-2012 | #13 |
Старожил Сообщения: 207
|
Профиль | Отправить PM | Цитировать Цитата Iska:
@echo off setlocal enabledelayedexpansion set A1=^<A^&B^^^!^> set A1 echo A1=!A1! echo !A1!>temp.tmp type temp.tmp del temp.tmp C:>x.bat A1=<A&B!> A1=<A&B!> <A&B!> Ошибка в синтаксисе команды. echo %A1% |
|
------- Последний раз редактировалось CyberMuesli, 22-05-2012 в 02:37. Причина: добавлены результаты работы скрипта Отправлено: 02:36, 22-05-2012 | #14 |
Старожил Сообщения: 207
|
Профиль | Отправить PM | Цитировать Да. Чтение файла всё меняет. Оно читает не по-честному, у меня пропадают восклицательные знаки
а без enabledelayedexpansion трудности с символами перенаправления. Что тут, сказать... BAT - это жесть. |
------- Последний раз редактировалось CyberMuesli, 22-05-2012 в 03:04. Отправлено: 02:58, 22-05-2012 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата CyberMuesli:
|
|
Отправлено: 03:31, 22-05-2012 | #16 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2010 - PowerPoint 2010 не распознаются спецсимволы | Kaimor | Microsoft Office (Word, Excel, Outlook и т.д.) | 0 | 03-11-2011 18:52 | |
VBS/WSH/JS - необходимо менять разрешения на раздел реестра содержащий спецсимволы | thebas | Скриптовые языки администрирования Windows | 2 | 30-03-2009 15:19 | |
[решено] При перенаправлении принтера терминального клиента не назначаются права доступа | vladimirniki | Microsoft Windows NT/2000/2003 | 2 | 02-12-2008 07:54 | |
Прочее - Linux и спецсимволы... | Bren74 | Общий по Linux | 3 | 21-10-2007 22:20 | |
[решено] Не работают спецсимволы. | Catalyst | Microsoft Windows 2000/XP | 11 | 13-02-2007 13:54 |
|