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

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

Ответить
Настройки темы
CMD/BAT - Спецсимволы при перенаправлении

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


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

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


В общем возникла проблема при написании батника:
считываю построчно текстовый файл и перенаправляю строки в другой тестовый файл, но проблема в том что в файле некоторые строки содержат спецсимволы (<>&) и при перенаправлении, через обычное 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
Благодарности: 257

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


CyberMuesli, автор указывает, что чтение происходит из текстового файла, и сколько там спецсимволов, и есть ли они - заранее не известно. О экранировании через '^' уже написано во втором сообщении, но это не выход - не редактировать же каждый раз исходный файл перед обработкой?

Цитата H1ghlander:
Нет не помогает.
Сообщение появляется, только в том случае если перед переносом строки находится пробелы или знаки табуляции. »
Хотя с решением я немного опоздал, но стоит заменить "Echo %%A" на "Echo.%%A", чтобы пустые строки нормально выводились.

Отправлено: 03:10, 21-05-2012 | #11



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

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


Аватара для CyberMuesli

Старожил


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

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


Цитата Anonymоus:
автор указывает, что чтение происходит из текстового файла »

Я не проверял с чтением из файла. Зато я проверил на простом echo. При наличии символов <&> echo %A% работает неправильно, а echo !A! работает правильно. Быть может, предварительное чтение файлов что-то меняет... Вечером проверю

-------
Кибер Мюсли


Отправлено: 16:00, 21-05-2012 | #12


Ветеран


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

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


А при наличии символов «!»?

Отправлено: 16:14, 21-05-2012 | #13


Аватара для CyberMuesli

Старожил


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

Профиль | Отправить 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


Аватара для CyberMuesli

Старожил


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

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


Да. Чтение файла всё меняет. Оно читает не по-честному, у меня пропадают восклицательные знаки

Код: Выделить весь код
@echo off
setlocal enabledelayedexpansion


set A1=^<A^&B^^^!^>
echo !A1!>source.tmp
echo !A1!>>source.tmp
echo !A1!>>source.tmp

del destination.tmp
for /f "tokens=* delims=" %%i in (source.tmp) do (
    set A1=%%i
    set A1
    echo !A1!>> destination.tmp
)
а без enabledelayedexpansion трудности с символами перенаправления. Что тут, сказать... BAT - это жесть.

-------
Кибер Мюсли


Последний раз редактировалось CyberMuesli, 22-05-2012 в 03:04.


Отправлено: 02:58, 22-05-2012 | #15


Ветеран


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

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


Цитата CyberMuesli:
вот взяли бы, да и проверили) »
Прошу прощения. Я думал, Вы поймёте, что вопрос был из разряда риторических.

Отправлено: 03:31, 22-05-2012 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход