Вывести строку файла cmd

Команда ECHO — вывод текста на экран консоли

Команда ECHO наверно является одной из самых простых и самых используемых команд. Применяется для вывода текстовых сообщений на стандартный вывод и для переключения режима отображения команд на экране.

Формат командной строки:

ECHO [ON | OFF] — включить / выключить режим отображения вводимых команд на экране.

ECHO [сообщение] отобразить текст сообщения на экране.

ECHO — при вводе команды без параметров, отображается текущий режим отображения команд:

Режим вывода команд на экран (ECHO) включен.

Для вывода пустой строки, используется команда ECHO с точкой:

echo Hello World. — вывод сообщения Hello World. на экран.

echo %USERNAME% — вывод на экран значения переменной окружения USERNAME (имени текущего пользователя)

Наиболее распространено использование команды echo в командных файлах. Практически любой командный файл начинается командой

@echo off — отключить режим вывода команд на экран. Символ @ перед командой echo используется для того, чтобы на экран не выводился и текст самой команды.

Очень часто команда echo используется для записи сообщений в текстовый файл с использованием перенаправлением вывода:

echo Начало работы — %DATE% в %TIME% >logfile.txt

Echo ERORLEVEL=%ERRORLEVEL% >> logfile.txt

Echo Конец работы, %DATE% в %TIME% >>logfile.txt

В текстовый файл logfile.txt записывается дата и время начала работы командного файла, некоторые результаты и время завершения.

Нередко, команда echo используется для создания нового файла:

echo 1 >newfile.cmd — вывести символ «1» в файл newfile.cmd . Если такого файла не существует, он будет создан, если существует, то будет перезаписан.

Значения параметров командной строки, переменных и их подстановочных значений, также нередко отображаются с помощью команды echo . Пример командного файла, выводящего на экран информацию о себе:

@echo off
ECHO ОБРАБАТЫВАЕТСЯ ФАЙЛ — %0
ECHO Дата/время создания/изменения командного файла — %

t0
ECHO Путь командного файла — «%

f0″
ECHO Диск командного файла — %

d0
ECHO Каталог командного файла — «%

p0″
ECHO Имя командного файла — %

n0
ECHO Расширение командного файла — %

x0
ECHO Короткое имя и расширение — %

s0
ECHO Атрибуты командного файла — %

a0
ECHO Размер командного файла — %

При выводе служебных символов, интерпретируемых командным процессором нужно использовать символ ^ . Например, вместо значения переменной ERRORLEVEL, нужно вывести текст “%ERRORLEVEL%”

ECHO ^%ERRORLEVEL^% = %ERRORLEVEL%

Особенностью команды ECHO является добавление служебных символов возврата каретки и перевода строки 0x0D и 0x0A (Carriage Return и Line Feed) в конец выводимого текста. Командный файл следующего содержания выводит текст из 3-х строк:

Если же требуется вывести весь текст в одну строку, обычно используют эмуляцию команды ECHO командой SET с параметром /P, используемой для организации диалога с пользователем, когда выводится сообщение, на которое требуется ответ. Выводимое сообщение можно использовать таким же образом, как и в команде ECHO, а вместо ответа можно использовать ввод с фиктивного устройства nul :

При выполнении такого командного файла сообщение на экране будет представлено одной строкой:

Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. Можно использовать и стандартные возможности командной строки, добавив комбинацию CTRL+G :

Источник

Вывести строку файла cmd

1 EXIT /b for %%a in («A=a» «B=b» «C=c» «D=d» «E=e» «F=f» «G=g» «H=h» «I=i» «J=j» «K=k» «L=l» «M=m» «N=n» «O=o» «P=p» «Q=q» «R=r» «S=s» «T=t» «U=u» «V=v» «W=w» «X=x» «Y=y» «Z=z» «А=а» «Б=б» «В=в» «Г=г» «Д=д» «Е=е» «Ж=ж» «З=з» «И=и» «К=к» «Л=л» «М=м» «Н=н» «О=о» «П=п» «Р=р» «С=с» «Т=т» «У=у» «Ф=ф» «Х=х» «Ц=ц» «Ч=ч» «Ш=ш» «Щ=щ» «Ь=ь» «Ы=ы» «Ъ=ъ» «Э=э» «Ю=ю» «Я=я») do ( call set %

ЗАМЕНА ОДНОЙ ПОДСТРОКИ НА ДРУГУЮ В ФАЙЛЕ

Для выполнения этой операции можно использовать утилиту sbs2.com
Традиция и дошедший комментарий приписывает авторство Herbert Kleebauer. Получить эту программку можно выполнив следующий бат файл:

x>viH>`LYNBGyA?@xAB?sUq`>>sbs2.com
echo LRy@PwtCYQEuFK@A

BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>>sbs2.com
echo LHsPBGyA?@xAunjzA>EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>>sbs2.com
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?

>>sbs2.com
echo CK>Ayre

В результате, в папке, где будет запущен приведенный выше текст, создастся файл sbs2.com.
Возможно, вы будете приятно удивлены его размером — 659 БАЙТ!
Те, кому вышеприведенные изыски кажутся излишними, могут скачать готовую утилиту здесь.
Использование:
sbs2.com 0 «Old String» «New String» outfile
Осуществляется замена всех вхождений Old String на New String в файле infile. Результат запишется в файл outfile.

Такую задачу можно решить без использования сторонних программ, только средствами bat !
Ниже приведен пример с использованием локальной процедуры txtrepl

Вывод на экран, в файл текста без перевода строки

В bat/cmd командах не предусмотрена возможность вывода данных без перевода строки. Но для решения такой задачи можно использовать некую уловку.
Команда set с параметром, предусматривающим ввод данных с экрана, позволяет вывести подсказку для ввода без перевода строки. Вот этим мы и воспользуемся.
b.txt

Использование этого приема в сочетании с символом backspace (код 08) позволяет сделать вывод на экран изменяемого текста и как вариант — «вращающейся палки».

Вычисление длины строковой переменной

В bat/cmd командах нет функции, позволяющей вычислять длину строковой переменной. А такая задача возникает не так уж и редко. Однако средств командного языка достаточно, для того что бы решить такую задачу, не прибегая к использованию специальных программ. Рассмотрим несколько вариантов решения данной задачи:

1 :startvarcount if not defined var exit /b set var=%var:

1% set /a %2+=1 goto startvarcount exit /b

Еще один вариант вычисления длины строковой переменной:

1″ GoTo :EOF :StringLenLoop Set /A $StringLen+=1 Call Set $StringChr=%%$StringBuf:

%$StringLen%%% If «»==»%$StringChr%» GOTO :EOF GoTo :StringLenLoop

Еще один способ определения длины строки, как ни странно — достаточно быстрый:

n0.tmp» For %%i In («%TEMP%\%

n0.tmp») Do Set /A z=%%

Ну и, наконец, решение, поразившее меня своей математической лаконичностью:

1!»&rem keep the A up front to ensure we rem get the length and not the upper bound rem it also avoids trouble in case of empty string set «len=0» for /L %%A in (12,-1,0) do ( set /a «len|=1% >» 1 call set sim=%%str:

!BB!,1%% if «!sim!» == «» ( set /a mmax=!BB!) else ( set /a mmin=!BB! ) ) ENDLOCAL & SET /a %

2=%mmin% EXIT /b %mmin%

Получение подстроки.

Если смещение начала подстроки и ее длина являются константами — здесь все достаточно просто и аналогичный пример рассматривался выше:

Прошу прощения, если в качестве значения переменной str я опубликовал чей-то пароль )).
Если же одна или обе эти величины — переменные, то решение будет не столь простое.
Здесь встретиться возможно не совсем обычное применение команды CALL. Немного глубже об этом на странице Полезное в разделе Особенности использования команды CALL. Там же рассмотрен и этот пример.
Итак, рассмотрим возможные решения:

Или как вариант предыдущего

Удаление ведущих и замыкающих пробелов.

%curpos%,1! if «!SUBD!» == «» GoTo :formrez if NOT «!SUBD!» == » » ( if !firstnoblank! == -1 set firstnoblank=!curpos! set lastnoblank=!curpos! ) set /a curpos = !curpos!+1 GoTo :StringLenLoop :formrez set /a n1=!firstnoblank!-1 set /a n2=!lastnoblank!-!firstnoblank!+1 if !firstnoblank! == -1 (set «rez=») else (set rez=!%1:

Источник

Вывести строку файла cmd

1 EXIT /b for %%a in («A=a» «B=b» «C=c» «D=d» «E=e» «F=f» «G=g» «H=h» «I=i» «J=j» «K=k» «L=l» «M=m» «N=n» «O=o» «P=p» «Q=q» «R=r» «S=s» «T=t» «U=u» «V=v» «W=w» «X=x» «Y=y» «Z=z» «А=а» «Б=б» «В=в» «Г=г» «Д=д» «Е=е» «Ж=ж» «З=з» «И=и» «К=к» «Л=л» «М=м» «Н=н» «О=о» «П=п» «Р=р» «С=с» «Т=т» «У=у» «Ф=ф» «Х=х» «Ц=ц» «Ч=ч» «Ш=ш» «Щ=щ» «Ь=ь» «Ы=ы» «Ъ=ъ» «Э=э» «Ю=ю» «Я=я») do ( call set %

ЗАМЕНА ОДНОЙ ПОДСТРОКИ НА ДРУГУЮ В ФАЙЛЕ

Для выполнения этой операции можно использовать утилиту sbs2.com
Традиция и дошедший комментарий приписывает авторство Herbert Kleebauer. Получить эту программку можно выполнив следующий бат файл:

x>viH>`LYNBGyA?@xAB?sUq`>>sbs2.com
echo LRy@PwtCYQEuFK@A

BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>>sbs2.com
echo LHsPBGyA?@xAunjzA>EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>>sbs2.com
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?

>>sbs2.com
echo CK>Ayre

В результате, в папке, где будет запущен приведенный выше текст, создастся файл sbs2.com.
Возможно, вы будете приятно удивлены его размером — 659 БАЙТ!
Те, кому вышеприведенные изыски кажутся излишними, могут скачать готовую утилиту здесь.
Использование:
sbs2.com 0 «Old String» «New String» outfile
Осуществляется замена всех вхождений Old String на New String в файле infile. Результат запишется в файл outfile.

Такую задачу можно решить без использования сторонних программ, только средствами bat !
Ниже приведен пример с использованием локальной процедуры txtrepl

Вывод на экран, в файл текста без перевода строки

В bat/cmd командах не предусмотрена возможность вывода данных без перевода строки. Но для решения такой задачи можно использовать некую уловку.
Команда set с параметром, предусматривающим ввод данных с экрана, позволяет вывести подсказку для ввода без перевода строки. Вот этим мы и воспользуемся.
b.txt

Использование этого приема в сочетании с символом backspace (код 08) позволяет сделать вывод на экран изменяемого текста и как вариант — «вращающейся палки».

Вычисление длины строковой переменной

В bat/cmd командах нет функции, позволяющей вычислять длину строковой переменной. А такая задача возникает не так уж и редко. Однако средств командного языка достаточно, для того что бы решить такую задачу, не прибегая к использованию специальных программ. Рассмотрим несколько вариантов решения данной задачи:

1 :startvarcount if not defined var exit /b set var=%var:

1% set /a %2+=1 goto startvarcount exit /b

Еще один вариант вычисления длины строковой переменной:

1″ GoTo :EOF :StringLenLoop Set /A $StringLen+=1 Call Set $StringChr=%%$StringBuf:

%$StringLen%%% If «»==»%$StringChr%» GOTO :EOF GoTo :StringLenLoop

Еще один способ определения длины строки, как ни странно — достаточно быстрый:

n0.tmp» For %%i In («%TEMP%\%

n0.tmp») Do Set /A z=%%

Ну и, наконец, решение, поразившее меня своей математической лаконичностью:

1!»&rem keep the A up front to ensure we rem get the length and not the upper bound rem it also avoids trouble in case of empty string set «len=0» for /L %%A in (12,-1,0) do ( set /a «len|=1% >» 1 call set sim=%%str:

!BB!,1%% if «!sim!» == «» ( set /a mmax=!BB!) else ( set /a mmin=!BB! ) ) ENDLOCAL & SET /a %

2=%mmin% EXIT /b %mmin%

Получение подстроки.

Если смещение начала подстроки и ее длина являются константами — здесь все достаточно просто и аналогичный пример рассматривался выше:

Прошу прощения, если в качестве значения переменной str я опубликовал чей-то пароль )).
Если же одна или обе эти величины — переменные, то решение будет не столь простое.
Здесь встретиться возможно не совсем обычное применение команды CALL. Немного глубже об этом на странице Полезное в разделе Особенности использования команды CALL. Там же рассмотрен и этот пример.
Итак, рассмотрим возможные решения:

Или как вариант предыдущего

Удаление ведущих и замыкающих пробелов.

%curpos%,1! if «!SUBD!» == «» GoTo :formrez if NOT «!SUBD!» == » » ( if !firstnoblank! == -1 set firstnoblank=!curpos! set lastnoblank=!curpos! ) set /a curpos = !curpos!+1 GoTo :StringLenLoop :formrez set /a n1=!firstnoblank!-1 set /a n2=!lastnoblank!-!firstnoblank!+1 if !firstnoblank! == -1 (set «rez=») else (set rez=!%1:

Источник

Как отобразить содержимое текстового файла в cmd?

Я хочу, чтобы отобразить содержимое текстового файла в окне cmd. Кроме того, я хочу увидеть новые строки, добавленные в файл, как tail -f команда в unix.

11 ответов

можно использовать . Например: more filename.txt

мы можем использовать команду «type», чтобы увидеть содержимое файла в cmd

больше информации можно найти здесь

Я не думаю, что для этого есть встроенная функция

это открывает файлы в текстовом редакторе по умолчанию в windows.

это отображает файл в текущем окне. Возможно, у этого есть парамы, которые вы можете использовать.

здесь есть аналогичный вопрос:CMD.EXE пакетный скрипт для отображения последних 10 строк из txt файла Таким образом, есть команда» больше » для отображения файла из данной строки, или вы можете использовать утилиты GNU для Что предложил брайанф в своей ссылке.

использование одной команды PowerShell для получения окончания файла:

применяется к powershell 3.0 и новее

другой вариант-создать файл с именем TAIL.CMD с этим кодом:

для этого вы можете использовать более продвинутую оболочку командной строки Microsoft под названием»Windows PowerShell.»Он должен быть стандартным для последних версий Windows, но вы можете загрузите его из Microsoft если вы еще не установили его.

чтобы получить последние пять строк в текстовом файле, просто прочитайте файл с помощью Get-Content , потом Select-Object выберите последние пять элементов / строк для вас:

вы можете использовать команду «больше», чтобы увидеть содержимое файла: more filename.txt

нет встроенной опции availble с windows. Для постоянного мониторинга журналов вы можете использовать это бесплатное приложение BareTailPro

вы можете получить утилиту хвоста из «Windows Server 2003 Resource Kit Tools» найденный здесь—https://www.microsoft.com/en-us/download/confirmation.aspx?id=17657

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

что будет повторяться вечно, пока вы не закроете окно cmd

Я предполагаю, что это было добавлено в Windows cmd.ехе в какой-то момент.

использование типа команды Read File в Windows

Источник

Выделить из текстового файла n-ную строку (использовать FIND /N и FOR)

в универе дали задание создать файл бат «Выделить из текстового файла n-ую строку (использовать find /n и for)». вывод строки, насколько я поняла —

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выделить из текстового файла n-ую строку (использовать find /n и for)
Создать скрипт: Выделить из текстового файла n-ую строку (использовать find /n и for)

Выделить из текстового файла n-ую строку (использовать find /n и for)
Выделить из текстового файла n-ую строку (использовать find /n и for)

Получить N-ную строку текстового файла
Добрый день. Я батники никогда не писал, но по работе пришлось написать. Здесь приложу часть своего.

Выделить из текстового файла n-ую строку. Написать на JavaScript
Выделить из текстового файла n-ую строку. Написать на JavaScript.

Решение

В качестве примера: запишет найденную по номеру строку в файл и выведет в консоль общее число строк.
find не использовал так как не понял как с ним это провернуть.
Вот такая конструкция for /f «usebackq delims=» %%i in (`find /n «10» text.txt`) do приводит к бесконечному вызову cmd. В данном варианте пытался указать как аргумент find номер строки, которую команда должна вывести с ключом /n и затем найти. Замена апострофов на одинарные кавычки приводит к выводу самой строки find /n «10» text.txt.
Поэтому получилось сделать только так:

PS: Вариант с find было бы интересно и самому увидеть.

Добавлено через 4 часа 30 минут
А вот и вариант с find:

*Заменил название файла(и путь) на первый аргумент(%1), а номер строки на второй(%2).

Кстати, большое спасибо очень нужная и компактная программа! =)

вот еще задачу дали. «Получить список файлов, в первой строке которых есть заданное слова»

Хотя знаете, я вообще ваш код не понимаю, я думаю — он не должен, вообще работать, по-моему он просто выводит первую строку, без любой проверки =)

*Так, я думаю, счетчик здесь не нужен, так как 1-ая строка — она всегда 1-ая, просто после этого надо останавливать FOR или вообще без FOR.

Возможно ли сделать так?

Както само получилось , наверно чтото не дописал.

Всем доброго времени суток! В продолжение темы, так сказать. Не давеча, возникла необходимость написать парсер некоего лог-файла, для собственных нужд. В общем, логика следующая:
— файл лога лежит на диске D:\BACKUP\pars.log (при этом, название его, динамически меняется каждый день, или логов может быть несколько. )
( в нём есть пять ключевых слов, по которым мне нужно сделать выборку : PM, ТS, TV, TI,TW) — я их поместил столбиком в файл findata.txt , таким образом, что бы каждому ключевому слову, соответствовал определённый номер строки от 1 до 5, который будет выступать одновременно, и счётчиком.
Дальше — стандартная процедура. Думаю пояснять не нужно.

Пожалуйста, помогите написать батник:
нужно произвести поиск заданного файла в заданном каталоге, потом в найденном файле заменить все вхождения заданной подстроки на другую заданную подстроку. если файлов найдется несколько, то замену произвести в каждом

для поиска пишу такое:

Дана строка, изображающая 10-ную запись числа, вывести строку, изображающую его 2-ную запись
дана строка, изображающая десятичную запись целого положительного числа. вывести строку.

Из TXT-файла скопировать n-ную строку и вставить ее вместо m-ной строки в DOC-файл
Нужно из одного txt файла скопировать n строку и вставить ее вместо m строки в doc файле. Можно ли.

Выделить из текстового файла все строки, начиная с заданной
Выделить из текстового файла все строки, начиная с заданной

Как выделить поля текстового файла, формируя вывод по условию?
Добрый день. Делаю программу-скрипт для парсинга некоторого конфигур.файла и составления из.

Источник

Читайте также:  Нужно ли чистить салаку при жарке
Оцените статью