|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Чтение содержимого текстового файла в переменную |
|
CMD/BAT - [решено] Чтение содержимого текстового файла в переменную
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать В батнике нужно прочитать небольшой текстовый файл в строковую переменную полностью.
Командой set /p comment=< comment.txt переменной comment присваиваются только первые 1036 символов файла. Есть ли возможность прочитать весь файл в переменную? В файле несколько тысяч символов. Спецсимволы (и кавычки) заскринены как надо, концы строк убраны. В файле по сути одна длинная строка. Ручное присвоение содержимого текстового файла непосредственно в батнике командой set "comment=бла-бла-бла, содержимое файла до конца" переменную меняет. Хочется же автоматической подстановки из файла. Тестировалось на разных русских и английских текстах - результат один и тот же: только 1036 символов. Система XPsp3 32bit. Формат пакетного файла cmd (да и с bat - только первые 1036 символов). По линку http://support.microsoft.com/kb/830473/en-us говорят о 8191 символе для командной строки и переменных окружения для XP. Мои системные переменные окружения занимают 1248 байт, то есть должно оставаться ещё 6-7 тысяч байт. |
|
Отправлено: 18:28, 10-03-2011 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата kosmopes:
|
|
Отправлено: 19:10, 10-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать gora, да, спасибо - до этого вчера и доискался.
Теперь борюсь за чтение в переменную нескольких строк из файла. Если текст в файле разбить на строки, вашей конструкцией считывается только последняя строка (или абзац одной строкой). Читал что-то про отложенное раскрытие переменных в цикле FOR http://www.robvanderwoude.com/variableexpansion.php Универсально сработала конструкция @setlocal ENABLEDELAYEDEXPANSION @FOR /F "tokens=*" %%i IN (comment.txt) do @IF NOT X%%i==X set comment=!comment!%%i ... @endlocal - читает из файла всё, игнорирует в файле пустые строки и абзацы - просто склеивает текст в одну строку. Написал IF NOT X%%i==X потому что не знаю, как проверить %%i на пустое значение по-другому - побоялся, что оно может быть либо пустым, либо "" - и вдруг это будут разные значения. При таком коде надо учесть, что строки склеиваются непосредственно - без разделителя (пробела, например) между склейками. В идеале, хорошо бы прочитать в одну переменную текст как есть - с разбиением на строки и абзацы (принципиально в батниках возможно использование таких переменных - разбитых на строки и абзацы?), а потом обработать в переменной возможное вхождение спецсимволов (", <, & и т.п.) - потому как эта переменная будет использоваться как параметр (тег комментария) в кодировщике lame, и необработанный текст может сбить команду кодировки. |
Отправлено: 12:58, 11-03-2011 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Чтение строки из файла в переменную | Николя | Скриптовые языки администрирования Windows | 42 | 17-01-2010 19:42 | |
[решено] Чтение текстового файла с неизвестным именем | ZeroCrash | AutoIt | 4 | 01-07-2009 19:03 | |
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. | Nun-Nun | Скриптовые языки администрирования Windows | 6 | 13-05-2009 13:28 | |
MSFT SQL Server - ошибка типа данных (tinyint и text) при записи содержимого поля в переменную | Vi-P | Программирование и базы данных | 14 | 11-12-2008 01:14 | |
Shell. Чтение текстового файла по строкам. | Delphin911 | Общий по Linux | 11 | 07-04-2005 17:58 |
|