Как вы можете прочитать файл (текстовый или двоичный) из командного файла? Есть способ прочитать его в бинарном или текстовом режиме?
file
batch-file
Лукас Габриэль Санчес
источник
источник
TYPE [fileName]
для MS-Dos.Ответы:
Вы можете использовать команду for:
Тип
в командной строке. Также вы можете анализировать ini-файлы !
источник
for /?
с командой будет анализировать каждую строку в myfile.txt, игнорируя строки, начинающиеся с точки с запятой, передавая 2-й и 3-й токены из каждой строки в тело for, с токенами, разделенными запятыми и / или пробелами.В cmd.exe в стиле NT вы можете перебирать строки текстового файла с помощью
Для получения дополнительных сведений введите в командной строке «справка для». (не знаю, работает ли это в той "DOS", которую вы используете)
источник
%%i
.FOR-LOOP в целом работает, но есть некоторые проблемы. FOR не принимает пустые строки, и строки с более чем ~ 8190 проблематичны. Расширение работает надежно, только если отложенное расширение отключено.
Обнаружение CR / LF по сравнению с одиночным LF также кажется немного сложным.
Также проблематичны символы NUL, так как цикл FOR немедленно отменяет чтение.
Поэтому прямое двоичное чтение кажется почти невозможным.
Проблему с пустыми строками можно решить хитростью. Приставьте к каждой строке номер строки, используя команду findstr, и после прочтения удалите префикс.
Переключение между включением и отключением отложенного раскрытия необходимо для безопасной работы со строками, такими как
!
или^^^xy!z
.Это потому, что строка
set "var=%%a"
безопасна только с DisabledDelayedExpansion , иначе восклицательные знаки удаляются, а вставки используются как (второстепенные) escape-символы, и они также удаляются.Но использование переменной
var
безопасно только с EnabledDelayedExpansion , так как даже a неcall %%var%%
будет работать с таким содержимым, как"&"&
.РЕДАКТИРОВАТЬ: добавлен вариант set / p.
Существует второй способ чтения файла с помощью
set /p
, единственные недостатки заключаются в том, что он ограничен ~ 1024 символами на строку и удаляет управляющие символы в конце строки.Но преимущество в том, что вам не нужно отложенное переключение и проще хранить значения в переменных.
Для чтения его "двоичного" в шестнадцатеричном представлении
Вы можете посмотреть на SO: преобразование двоичного файла в шестнадцатеричное представление с использованием пакетного файла
источник
set /p
. Я использовалset /p value=< result.txt
получение первой строки из текстового файла0x1A
? ведетfor /F
себя так же, как и с0x00
символами NUL ( )?:
или;
или содержат!
Один очень простой способ сделать это - использовать следующую команду:
Это отобразит только первую строку текста в текстовом файле. Другой способ сделать это - использовать следующую команду:
Это поместит все данные из текстового файла на экран. Надеюсь это поможет!
источник
Что ж, есть много разных способов, но если вы хотите только ОТОБРАЖАТЬ текст, а не СОХРАНИТЬ его где-либо, вы просто используете:
findstr /v "randomtextthatnoonewilluse" filename.txt
источник
Исправленный код:
источник
eol=
иdelims=
они излишни,set line=%%a
должны использовать кавычки и без переключения режима отложенного расширения, код не может читать восклицательные знакиКод, отображающий на экране содержимое файла myfile.txt.
установить% filecontent% = 0
type% filename% >>% filecontent%
echo% filecontent%
источник