Как я могу прочитать первую строку из текстового файла с помощью командного файла Windows? Поскольку файл большой, я хочу иметь дело только с первой строкой.
batch-file
cmd
Джесси Фогт
источник
источник
Ответы:
Вот командный файл общего назначения для печати верхних
n
строк из файла, такого какhead
утилита GNU , вместо одной строки.Например:
В настоящее время он не считает пустые строки. На него также распространяется ограничение на длину строки командного файла, равное 8 КБ.
источник
;
, символа FOR / F EOL по умолчанию. Если запросить 10 строк, он напечатает первые 10 строк, которые не пусты и не начинаются;
.а? имо это намного проще
источник
echo %texte:~3%
например, пропустит первые три символа. Это полезно, когда вы читаете файл UTF-8 с спецификацией.Эээ, ребята ...
источник
findstr "^1:"
и получите теплоту и защиту двойных кавычек. Или, если вы презираете такие цитаты, как я, и хотите жить опасно, используйтеfindstr /b 1:
findstr ^^1
.set /p
Решение является гораздо более эффективным для больших файлов.Вы можете попробовать:
edit Или, скажем, у вас есть четыре столбца данных и вы хотите от 5-й строки до конца, попробуйте следующее:
источник
"delims="
чтобы распечатать полные имена папок вместе с пробелами.Благодаря thetalkingwalnut с ответом на пакетную команду Windows для чтения первой строки из текстового файла я пришел к следующему решению:
источник
Слегка опираясь на ответы других людей. Теперь вы можете указать файл, из которого вы хотите читать, и переменную, в которую вы хотите поместить результат:
Это означает, что вы можете использовать приведенное выше (при условии, что вы назвали его getline.bat)
источник
Один лайнер, полезный для перенаправления стандартного вывода с помощью ">":
источник
Попробуй это
источник
Чтобы Cicle файл (
file1.txt
,file1[1].txt
,file1[2].txt
и т.д.):И это работает.
источник
set /p
спрашивает через подсказку; однако при перенаправлении файла<
он сразу же получает содержимое файла по запросу; и поскольку первая строка заканчивается строкой, в этот момент подсказка перестает читать и, таким образом, сохраняет только первую строку в переменной.Проблема с
EXIT /B
решениями, когда более реалистично внутри командного файла, поскольку только одна его часть, заключается в следующем. В указанном командном файле нет последующей обработки послеEXIT /B
. Обычно партии - это гораздо больше, чем просто одна ограниченная задача.Чтобы противостоять этой проблеме:
(Однако так называемые ядовитые символы по-прежнему будут проблемой.)
Подробнее о получении конкретной строки с помощью пакетных команд:
[Добавлено 28 августа 2012 г.] Также можно иметь:
источник
Обратите внимание, подходы к пакетным файлам будут ограничены лимитом строки для командного процессора DOS - см. Какое ограничение на длину командной строки? .
Поэтому, если вы пытаетесь обработать файл, в котором есть строки, превышающие 8192 символа, сценарий просто пропустит их, поскольку значение не может быть сохранено.
источник
По-другому
источник
Вот обходной путь
powershell
:(Вы также можете легко прочитать ряд строк с
powershell (Get-Content file.txt)[0..3]
)Если вам нужно установить переменную внутри пакетного сценария, в качестве первой строки
file.txt
вы можете использовать:источник
for /f "delims=" %a in (downing.txt) do echo %a & pause>nul
Печатает 1-ю строку, затем ожидает, пока пользователь нажмет клавишу для печати следующей строки. После печати необходимых строк нажмите Ctrl + C для остановки.
@Ross Presser: этот метод печатает только строки, но не добавляет номера строк.
источник