Синтаксис файлов bat: Пакетные файлы (bat, батники) Windows — mirAdmin

Содержание

erase | Microsoft Learn






Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья


Удаляет один или несколько файлов. Если вы используете очистку для удаления файла с диска, вы не сможете получить его.

Примечание

Эта команда аналогична команде del.

erase [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>
del [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>

Параметры

ПараметрОписание
<names>Указывает список из одного или нескольких файлов или каталогов. Подстановочные знаки можно использовать для удаления нескольких файлов. Если указан каталог, все файлы в каталоге будут удалены.
/pЗапрашивает подтверждение перед удалением указанного файла.
/fПринудительно удаляет файлы, доступные только для чтения.
/sУдаляет указанные файлы из текущего каталога и всех подкаталогов. Отображает имена файлов при их удалении.
/qЗадает тихий режим. Подтверждение удаления не запрашивается.
/a[:]<attributes>Удаляет файлы на основе следующих атрибутов файла:

  • R файлы только для чтения
  • h Скрытые файлы
  • I Not content indexed files
  • s Системные файлы
  • Файл , готовый к архивации
  • l Точки повторного анализа
  • Используется в качестве префикса, означающее «не»
/?Отображение справки в командной строке.
  • Если вы используете erase /p команду , вы увидите следующее сообщение:

    FileName, Delete (Y/N)?

    Чтобы подтвердить удаление, нажмите клавишу Y. Чтобы отменить удаление и отобразить имя следующего файла (если вы указали группу файлов), нажмите клавишу N. Чтобы остановить команду erase , нажмите клавиши CTRL+C.

  • Если отключить расширение команд, параметр /s будет отображать имена файлов, которые не были найдены, а не имена удаляемых файлов.

  • Если указать определенные папки в параметре <names> , все включенные файлы также будут удалены. Например, если вы хотите удалить все файлы в папке \work , введите:

    erase \work
    
  • Вы можете использовать подстановочные знаки (* и ?) для одновременного удаления нескольких файлов. Однако, чтобы избежать случайного удаления файлов, следует осторожно использовать подстановочные знаки. Например, если ввести следующую команду:

    erase *.*
    

    Команда erase отображает следующую строку:

    Are you sure (Y/N)?

    Чтобы удалить все файлы в текущем каталоге, нажмите клавишу Y , а затем клавишу ВВОД. Чтобы отменить удаление, нажмите клавишу N , а затем клавишу ВВОД.

    Примечание

    Прежде чем использовать подстановочные знаки с помощью команды erase , используйте те же подстановочные знаки с командой dir , чтобы получить список всех файлов, которые будут удалены.

Примеры

Чтобы удалить все файлы в папке с именем Test on drive C, введите один из следующих вариантов:

erase c:\test
erase c:\test\*.*

Чтобы удалить все файлы с расширением имени файла .bat из текущего каталога, введите:

erase *.bat

Чтобы удалить все файлы только для чтения в текущем каталоге, введите:

erase /a:r *.*
  • Условные обозначения синтаксиса команд командной строки

  • Команда del






Пакетные файлы (bat)

Март 11th, 2013 admin

Пакетные файлы — это программа, состоящая из команд MS-DOS. Имеют специфические команды, предназначенные для организации условий цикла.
Синтаксис: <имя файла> [<параметр>]
Все параметры разделяются пробелом.

Вводные параметры и переменные
Для подстановки входных параметров в пакетном файле используется конструкция %0, %1,…,%9. %0 — имя пакетного файла. %1,…,%9 — входные параметры. Чтобы подставить параметры начиная с 10 следует нажать shift. Клавиша сдвигает номера параметров таким образом 0-й остается на месте, а все остальные параметры уменьшают номер на 1, при этом 1 теряется.
Все переменные, используемые в MS-DOS образуют окружение:
SET – список переменных окружений.
SET <переменная> = <значение>
SET <переменная> = — удаляет переменную из окружения.

Пример echo Ваша фамилия: %familia%.
Размер окружения строго фиксирован, он может составлять 160кб до нескольких килобайт. Каждая программа при запуске получает копию окружения и может ее использовать в своих целях.

Пример
echo ваша фамилия: %familiya%
Размер окружения строго фиксирован, он может составлять от 160байт до несколольких килобайт. Каждая программа при запуске получает копию окружения и может ее использовать в своих нуждах.

Общие команды
rem <коментарий> — текст коментария
@<команда> — вызвать команду не выдавая ее названия на экран.
echo off — отключить выдачу названий для всех команд.

Оператор перехода в пакетных файлах:<метка> — установить метку перехода в пакетном файле.
goto<метка> — перейти в метку

Пример:
@echo off
:m
echo «Привет!»
goto m.

Условный оператор в пакетном файле

if [not] errorlevel <число> <команда> — выполнить указанную команду, если код возврата последней выполненной команды >= чем указанное число.

if [not] «строка 1» == «строка 2» <команда> — выполнить команду если строки совпадают.

if [not] exist <имя файла> <команда> — выполняет команду если файл существует.

Цикл с параметром в пакетном файле

for %<параметр> in (<шаблон>) do <команда> — выполняет команду для всех значений параметра, являющихся именами файлов подходящих под заданный шаблон.
Пример: Распечатать имена txt-файлов
for %i in (*.txt) do echo %i

Вызов пакетного файла

Пакетный файл можно вызвать из другого 2-мя способами:
Прямой вызов (без возврата):
a.bat
…..
…..
b.bat
тело b.bat
…..
…..
конец b.bat
продолжение a.bat не выполняется.

Процедурный вызов (с возвратом):
a.bat
…..
…..
call b.bat
тело b.bat
…..
…..
продолжение a.bat
…..
…..
конец a.bat

.
пакетный файл размещение
bat файл входные параметры

Опубликовано в рубрике Справочник

Комментирование и размещение ссылок запрещено.

Пакетный файл / bat / Windows CMD — Шпаргалка

Совет: когда PATH кажется, что не работает (последние обновления не отображаются), перезагрузка не повредит, и это часто устраняет проблему.

Что и ссылка Тип
SS64: «A-Z» Ссылка CMD Документы
SS64: синтаксис Escape Шпаргалка
 @REM # Мой комментарий 

Или, если вы хотите, чтобы комментарии отображались при выполнении, используйте его без @ :

 REM # My Comment 
 SET MYPATH="C:\Users\Joshua"
компакт-диск %MYPATH% 

ПРЕДУПРЕЖДЕНИЕ. Будьте осторожны при заключении переменных в кавычки; вы можете случайно вложить кавычки/двойные кавычки.

Если вы пытаетесь использовать путь напрямую для доступа к содержимому (например, с в (filename.txt) вам не нужны кавычки вокруг строки)

Глобальные переменные/макросы

Переменная Пример Что
%путь% C:\...\progA\bin;C:\...\progB;... Ваша глобальная переменная пути
%кд% C:\Users\Джошуа Текущий каталог (вызывающего, а не скрипта!)
%~dp0 К:\... Полный путь к постоянному файлу скрипта
%ProgramFiles% C:\Program Files Основной каталог файлов программы
%ProgramFiles(x86)% C:\Program Files (x86) Основной каталог программных файлов x86
%дата% Ср 02. 09.2020 Текущая дата
%время% 12:50:00,86 Текущее время

На этой странице представлен полный список стандартных глобальных переменных среды и их значений по умолчанию. Кроме того, здесь можно найти множество подсказок по синтаксису переменных FOR.

Переменные среды

Установка переменных среды

Используйте либо команду set (временно), либо команду setx (постоянно).

Cmd:

 @REM // Установить пользовательскую (локальную) переменную — сохраняется вне текущих сеансов
setx МОЙ ПУТЬ "C:\Users\Джошуа"
@REM // системная переменная (глобальная) — требует повышенных привилегий — сохраняется после текущих сеансов
setx МОЙ ПУТЬ "C:\Пользователи\Джошуа" /M
@REM // временно, вступает в силу в текущем сеансе, не сохраняется
установить MYPATH="C:\Users\Джошуа" 

🚨 Обратите внимание, что set имеет другой синтаксис, чем setx .

🚨 👉 SETX изменения вступят в силу только в новых сеансах консоли, а не в текущем сеансе. См. раздел ниже об обновлении переменных среды.

«set» или «setx»? Установка является временной — переменная устанавливается на время сеанса консоли, тогда как setx сохраняет значение даже после закрытия консоли.

Powershell:

 $env:MYPATH="C:\Users\Joshua" 

Использование переменных среды

Тот же синтаксис, что и при использовании переменных — %ENV_VAR_NAME% .

Пример: cd %APPDATA%

🚨 👉 Переменные среды по умолчанию не могут использоваться в консоли, которая была создана до того, как были установлены их значения. См. ниже.

Обновление переменных среды

Переменные среды по умолчанию не могут быть считаны в консоли, если они были установлены после запускалась консоль. Например, если вы запустите две консоли, а затем вызовете setx в одной для установки значения, ни одна из двух консолей не сможет прочитать значение, которое было только что установлено, и вам придется либо перезапустить каждую из них, чтобы прочитать значение или создать новую консоль (что одно и то же).

Это серьезный недостаток того, как переменные среды работают в Windows, но есть несколько обходных сценариев, много хороших в ответах на этот вопрос StackOverflow.

К сожалению, во многих случаях лучшим решением остается просто взять новую консоль.

В ConEmu / Cmder вы можете избавить себя от необходимости перезапускать весь экземпляр Cmder, используя Меню -> Активная консоль -> Перезапустить или дублировать -> Перезапустить [...] . Или вы даже можете создать горячую клавишу для действия (в горячих клавишах она указана как: Воссоздать активную консоль )

Очистка переменных среды

Если значение было установлено через SET вместо SETX , тогда вы можете просто создать новый экземпляр терминала в среде со свежим значением. Если вы хотите очистить значение, установленное с помощью setx , и/или не хотите создавать новый терминал, варианты удаления переменной среды зависят от того, что вы хотите:

  • Удаление переменной для текущего сеанс:
    • Использовать установить с пустым назначением (без пробела): установить MYVAR=
    • Это будет работать для значений, установленных через SET , но будет работать только временно (текущий сеанс) для значений, установленных через SETX
  • Удаление сохраненного значения ( пользователя или системы )
    • Пользователь : REG удалить HKCU\Environment /F /V MYVAR
    • Система : REG удалить "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V MYVAR
    • Престижность этому ответу SO

Захват вывода в переменную

Довольно сложно в Windows. ..

Похоже, популярный «трюк» заключается в использовании:

Подробнее см.:

  • S/O:
    • Назначение вывода программы переменной с помощью пакетного файла MS
    • Как настроить вывод команд как переменную в пакетном файле
  • Microsoft — сообщение в блоге The Old New Thing

Копирование в буфер обмена

Вы можете использовать CLIP для копирования чего-либо в буфер обмена. Например,

 эхо "Привет" | CLIP 

Дополнительные сведения см. на этой странице руководства c3scripts.com.

Проблемы Unicode с CLIP

Терминал Windows имеет печально известные проблемы с кодовыми точками выше стандартного диапазона ascii (например, эмодзи).

Исправление для CLIP такое же, как и при использовании Unicode с командной строкой в ​​целом; изменить кодовую страницу с помощью чкп 65001 .

Я нашел PR, который является отличным иллюстративным решением — PR Node-copy-and-paste #45.

Чтение из буфера обмена

К сожалению, нет встроенной команды для чтения из буфера обмена в Windows, по крайней мере, в командной строке. Однако в PowerShell есть встроенный инструмент; Получить буфер обмена .

Если вам действительно нужна эта функциональность в CMD, вы всегда можете выполнить команду Powershell из командной строки :

 powershell -command "Get-Clipboard"
REM # Может передавать или перенаправлять, как вам угодно
REM # Пример: вывести буфер обмена на стандартный вывод
powershell -команда «Получить буфер обмена» | cat 

Соединение строк vars

То же, что и bash, вы можете просто соединить их вместе:

 SET strA=Hello
НАБОР strB=Мир
НАБОР окончательный=%strA% %strB%
эхо %final% 

Привет, мир

И вы также можете поместить переменные в строки:

 SET strA=Hello
эхо "%strA% Мир" 

Привет, мир

Удаление кавычек из строковых переменных

Чтобы удалить кавычки из переменной, используйте set VAR_NAME=%VAR_NAME:"=% (ref)

Или, без переназначения: echo %VAR_NAME:"=% 900 06

Вы также можете избежать использования переменных в кавычках, заключив всю команду set в кавычки при ее объявлении:

 SET "UNQUOTED_STR=C:\Program Files" 

Удаление разрывов строк из строк

Удаление разрывов строк с помощью синтаксиса манипулирования строками

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

 эхо %VAR_NAME:~0,-1% 

Кредит на этот серийный номер

Однако это не удаляет разрыв строки в конце, который происходит с echo Hello World > out.txt . См. ниже

Удаление разрывов завершающей строки и пустых строк — набор

Удаление завершающей пустой строки, как и многое другое в CMD, не так просто, как хотелось бы многим из нас.

Если вы ищете полностью собственный вариант и еще не сохранили или не захватили вывод, согласованный метод, по-видимому, заключается в использовании set /p (кредит S/O):

 echo | set /p dummyName=Hello World>out.txt
@REM # Это работает даже с переменными
эхо | set /p dummyName=%MY_VAR%>out.txt 

Целенаправленное включение разрывов строк в строки

Включение разрывов строк в строки и переменные немного сложнее с cmd / bat. Существует несколько подходов, подробно перечисленных ниже. Для хорошего резюме это отличный ответ S/O.

Включение разрывов строк — использование эха:

Если вам не нужно сохранять строку или передавать ее, вы можете просто добавить больше пустых эхо-команд ( echo; ) для создания разрывов строк. Например:

 эхо Line One
эхо;
эхо Вторая линия 

Обратите внимание на эхо ; используется вместо эха . — это потому, что последний будет пытаться искать файлы с таким же именем, поэтому намного медленнее.

Включая разрывы строк — макрос-подход: 9& эхо;
@REM # Обратите внимание, что в строке ниже не используются начальные и конечные кавычки,
@REM #, а не заключать в кавычки весь блок присваивания
SET «MULTI_LINE_STR=Линия 1%NL%Линия 2»
эхо %MULTI_LINE_STR%

Проблема с описанным выше подходом заключается в том, что, поскольку это макрос, который вызывает echo , а не фактические символы, вы не можете использовать его таким образом, чтобы захватить вывод. Например, echo %MULTI_LINE_STR% > out.txt сохранит только вторую строку, потому что макрос расширяется до того места, где фактически исполняемый код больше похож на: 9%=Не удалять эту строку=%
)
@REM # Обратите внимание на использование кавычек для экранирования плюс расширение !
SET «MULTI_LINE_STR=Первая линия!NL!Вторая линия!»
@REM # Используйте !{VAR}! расширять
эхо:!MULTI_LINE_STR!
@REM # Работает даже перенаправление в файл!
@REM # Пока мы расширяемся с помощью !{VAR}!
эхо:!MULTI_LINE_STR! > out.txt

Приведенный выше код основан на этом и этом.

Включая разрывы строк — сложная управляющая последовательность

Уч.

  • Получить путь
    • ПУТЬ
    • Более читабельная версия
      • эхо %path:;=&эхо.%
        • Кредит
  • Получение пользовательских переменных
    • можно получить, просто используя синтаксис %varName%
    • эхо %JAVA_HOME%
  • Оператор перенаправления
    • ipconfig /all > output. txt
  • Двойное перенаправление для режима добавления
    • ipconfig /all >> existsOutput.txt

Копировать файлы

Есть куча встроенных инструментов. В порядке онлайн-рекомендаций:

  • Robocopy
    • сс64
    • Основной синтаксис: ROBOCOPY {src} {dest} {?fileOrGlobPatterns} {?options}
    • Пример: ROBOCOPY %cd% "C:\Users\Joshua\Dropbox\web-project" *.json *.html *.js *.md
    • Этот S/O охватывает значения по умолчанию, для которых Robocopy будет пропускать копирование; вы можете использовать /IT для включения модифицированных файлов и /IS для включения тех же файлов
    • Используйте / l для пробного прогона / предварительного просмотра того, что произойдет
  • XКопия
  • Копия

Список всех файлов по размеру (рекурсивный подкаталог тоже)

 (@For /F "Delims=" %A in ('dir /B/S/A-D') Do @Echo %~fA %~zA) > filelist. txt 
  • Кредит

Дерево списка файлов

  • Для файлов и папок
    • дерево /F
  • Конвейер в файл — используйте /A для вывода ascii, иначе файл будет искажен
    • дерево /F /A > файловая структура.txt

Удалить файлы определенного типа в текущей папке и во всех вложенных папках

Пакет:

 DEL /S *.docx 

НАПОМИНАНИЕ — хотя на концах нет подстановочного знака, он по какой-то причине действует как таковой. Таким образом, DEL/S *.qml удалит все файлы .qml, а также все файлы .qmlc — см. https://stackoverflow.com/a/3239.9927

Powershell:

 Remove-Item * -Include *.qml -Recurse | Удалить элемент 

ПРИМЕЧАНИЕ. Powershell не страдает от вышеуказанной проблемы — .qml будет соответствовать .qml, а не .qmlc

Проверка контрольных сумм

Можно использовать встроенную утилиту CertUtil .

Например:

 CertUtil -hashfile my_program.exe SHA256 

Если вы ищете подход с графическим интерфейсом, проверьте hashcheck. Или этот список бесплатных хеш-программ для Windows.

Поскольку CertUtil может только хэшировать файлы (не переданные по конвейеру или сохраненные строки), для проверки онлайн-файла (через cURL), содержимого буфера обмена или любых других строк вам потребуется временно сохранить файл в файл, а затем передать файл в CertUtil .

 завиток https://.../myfile.txt > темп
CertUtil - временный файл хэша SHA256
ДЕЛ темп 

🚨 ПРЕДУПРЕЖДЕНИЕ. Будьте очень осторожны с тем, как легко можно случайно добавить или включить новые строки и/или дополнительный интервал в контенте, из которого вы пытаетесь сгенерировать хэш. Если вы случайно добавите в оболочку тот, которого нет в содержимом, хэши не будут совпадать.

Если вы хотите быстро хэшировать/кодировать строки с помощью графического интерфейса, я настоятельно рекомендую онлайн-инструмент CyberChef. Вот пример рецепта для SHA256+Base64.

Преобразование путей в косую черту

Если у вас есть git-bash или что-то подобное, включающее программу sed , это быстрое решение:

 echo '\\dir\\file.txt' | sed -E 's/\\\\/\//g'
# /dir/file.txt 

IF / Else

  • Учебник

Основы:

 Если (условие) (сделать_что-то) ELSE (сделать_что-то еще) 

Убедитесь, что логические переключатели находятся на одной линии — https://ss64.com/nt/else.html

Этот Не подойдет :

 ЕСЛИ СУЩЕСТВУЕТ %MyFile% (
эхо "найдено"
)
ЕЩЕ (
эхо "не найдено"
) 

Это должно работать:

 ЕСЛИ СУЩЕСТВУЕТ %MyFile% (
эхо "найдено"
) ЕЩЕ (
эхо "не найдено"
) 

ELSE IF

Else If может вызвать проблемы с пакетными сценариями .bat. Может работать в CMD, но для BAT, кажется, большинство людей рекомендуют вложенные IF в качестве альтернативы или GOTO. Хотя у меня работало нормально, с Win 8

  • Просто!
    • эхо %cd%
  • Отлично подходит для открытия текущей папки с различными программами
    • "C:\Program Files\Microsoft VS Code\Code.exe" %cd%
    • Explorer.exe %cd%

Добавьте это в самый конец файла:

Обычно использование команды call является наиболее надежным способом запуска процесса или сценария и ожидания его завершения:

 CALL my-prog 

Другим вариантом, который иногда работает, является использование команды start , особенно с wait

 START /wait my-prog 

💡 StackOverflow: ЗВОНОК против СТАРТ/ОЖИДАНИЕ

Более сложный пример START

Существует несколько способов обработки ошибок в пакетных сценариях.

 @REM # С перенаправлением
@Эхо выключено
SomeCommand && (
Эхо успеха
) || (
Эхо не удалось/ошибка
)
@REM # С явной проверкой кода ошибки:
если !уровень ошибки! neq 0 выход /b !уровень ошибки! 

Если вы хотите что-то запустить, включая пакетные сценарии, и записать в файл как stdout, так и stderror, вы можете использовать mycommand > output. txt 2>&1 , что является очень распространенным приемом перенаправления

Автоматический прием ввода при вызове

В файле .bat можно автоматически получать и использовать ввод, предоставленный при вызове файла, с помощью %1 , %2 и т. д.

Запрос ввода

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

 set /P {variableName}="Prompt String"
Доступ к REM с использованием %{variableName}% 

Пример:

 set /P name="Как тебя зовут?"
эхо Добрый день, %name%!
PAUSE 

Передача входных аргументов в другую программу

Если вам нужно передать завершающие входные аргументы в другую программу, вы можете использовать %* .

Например, если бы я хотел создать файл-заглушку в папке \bin , который просто вызывает другой, я мог бы сделать что-то вроде этого:

 %~dp0..\src\my-bin.exe %* 

Кстати, именно так NodeJS обрабатывает cmd файлов в папке \. bin — они используют этот синтаксис для вызова node your-file.js your-args .

Дополнительные сведения см. в разделе SS64 — . Передача аргументов командной строки в пакетный файл Windows


Вы можете использовать TAKEOWN , чтобы стать владельцем файлов.

  • SS64
  • Документы Win

Пример:

 REM # Содержимое папки: foo.txt и подпапка ./pics.
REM # Нам нужно стать владельцем ./pics
takeown /r /f pics 

В Win вы можете использовать MKLink (ss64) для создания символической ссылки на каталог или файл.

  • Ссылка на файл:
    • MKlink {symbolicFileName} {realTargetFile}
  • Ссылка на каталог/папку
    • MKlink/D {symbolicDirName} {realTargetDir}

Для создания символической ссылки требуется консоль с повышенными правами (с правами администратора). (Если не используется режим разработки на Win 10+)

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

Если вы хотите проверить, на что ссылается символическая ссылка (или просто посмотреть, есть ли они в текущем каталоге), вы можете использовать:

dir /a или только ссылки, dir /al

Пакетное создание ярлыков Windows

Файлы ярлыков Windows ( .lnk ) представляют собой особый проприетарный тип файлов , полностью отделенный от символических ссылок. Их проприетарный характер и тот факт, что многие программы открывают цель вместо самого файла .lnk , затрудняют их редактирование и создание.

По существу нет встроенного способа легко создавать ярлыки файлов из командной строки в Windows, особенно в Win10. Вы можете обойти это с помощью сторонних служебных программ, сценариев VB или PowerShell.

Я бы рекомендовал использовать инструмент NirCmd от NirSoft и его команду быстрого доступа.

Активные подключения, порты и т. д.

Команда перехода для просмотра списка активных подключений и прослушиваемых портов — netstat .

Чтобы найти информацию об определенном порте, вы можете использовать что-то вроде netstat -bnao | grep "8080" (или найти , если отсутствует git-bash). Затем вы можете сделать еще один шаг и взять PID из этого вывода и использовать список задач /fi "pid eq PID_from_netstat" для получения информации о процессе. Или используйте taskkill /F /PID PID_from_netstat , чтобы убить процесс.


Поиск путей к исполняемым файлам

Используйте , где , чтобы найти файлы, а также глобальные пути к исполняемым/двоичным файлам.

Например, , где npm , чтобы узнать, какие исполняемые файлы NPM глобально зарегистрированы в пути.

Это примерно эквивалентно команде Unix / bash which .

Список задач

  • Поиск процесса по имени исполняемого файла
    • список задач /FI "IMAGENAME eq Greenshot.exe"
  • Убить процесс по имени исполняемого файла
    • тасккилл/IM {EXE_NAME}
      • В основном то же самое, что и выше: список задач /FI "IMAGENAME eq {EXE_NAME}"
    • Опционально: /F для «силы»

Запуск приложений

Команда Что?
открыть "" "https://joshuatz.com" Открытие URL-адреса в веб-браузере по умолчанию

Команда Что?
информация о системе Отображает набор системной информации, включая версию ОС, модель ПК, время безотказной работы и многое другое.

Структура пакетного файла Синтаксис: echo off cmd

Структура командного файла Синтаксис: echo off cmd

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

echo @ или @echo off

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

для иллюстрации небольшого примера использования команды «echo»:

Команда echo выводит текст:

Содержимое пакетного файла:

 echo a Text 

Output:

 echo a Text
Текст 

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

Содержимое пакетного файла:

 @echo hello 

Вывод:

 hello 

В выводе вызов команды подавляется: «echo текст».

Чтобы не писать «@» перед каждой командой, есть команда «echo off».
Чтобы подавить вывод самой команды «echo off», вы можете использовать «@echo off».
Содержимое командного файла:

 @echo off
echo hello 

Вывод:

 hello 

см. также: Практические примеры с пакетом

Для вставки комментариев в пакетный файл используется команда «rem».
Содержимое командного файла:

 rem echo это комментарий 

игнорирует всю строку: ничего не выводится

пауза

команда паузы, останавливает пакетный файл и ждет, пока не будет нажата какая-либо клавиша.

 @эхо выключено
эхо привет
пауза 

Вывод:

 привет
Нажмите любую клавишу . . . 

({{pro_count}})

Оценить сообщение:
{{percentage}} % положительный

({{con_count}})

СПАСИБО за отзыв!


➨ Практические примеры с партиями |
➦ Пакетная обработка Windows
| Пакетный файл циклов последовательности и меток перехода: loop goto ➨

сообщить об этом объявлении


Лучшие статьи в этом разделе


сон или ожидание в пакетных файлах: pause cmd

Функция ожидания или сна была недоступна в BATch-файлах по умолчанию.