BVV63
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Насчёт вчерашнего вопроса. Во-первых, в-попыхах (спешил домой) был неточен, забыл кавычки: Код: For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%A In (`WMIC NTEventLog Get Name /Value`) Do Echo "%%A">файл | Во-вторых, забыл указать операционку: 2K3 (под XP вроде бы подобного безобразия не наблюдается). Так вот, замыкающая кавычка переносится на новую строку. Сегодня уже разобрался: вывод дополняется символом 0x0D (без 0x0A). Решил даже похулиганить: извлечь одиночный байт 0x0D и запихать в переменную "NewString", дабы при помощи неё создавать многострочные переменные. Увы, не получилось... После Set "NewString=%%A" в цикле под SetLocal в переменной он оставался, но вырезаться не захотел. Добавлено: Переделал вывод, строка дополняется двумя пробелами и символом 0x0D (по крайней мере, под 2K3): Код: SetLocal EnableDelayedExpansion For /F "Skip=1 Tokens=* UseBackQ" %%A In (`WMIC NTEventLog Get Name ^| Findstr .`) Do ( Set NewString=%%A Set NewString=!NewString:~-2!) Set Var=String1!NewString!String2 Echo !Var!>файл | В файле получилось: String1 String2 Добавлено: А, видимо я раньше затупил. Так тоже можно, тогда в переменной без лишнего пробела, чисто один байт 0x0D: Код: SetLocal EnableDelayedExpansion For /F "Delims== Skip=2 Tokens=2 UseBackQ" %%A In (`WMIC NTEventLog Get Name /Value`) Do ( Set NewString=%%A Set NewString=!NewString:~-1!) Set Var=String1!NewString!String2 Echo !Var!>файл | В файле: String1 String2 Добавлено: А вот из под SetLocal вытащить перенос строки не получается: Код: EndLocal & Set NewString=%NewString% Set Var=String1%NewString%String2 Echo %Var%>файл | В файле: String1String2 Добавлено: А при выводе на консоль получается безобразие: "Echo !Var!" - в ответ: "String2", "Set Var" - в ответ: "String2ing1". | Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 07:27 16-07-2010 | Исправлено: BVV63, 09:03 16-07-2010 |
|