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

Содержание

→ batch%20file, перевод на русский, примеры предложений

It will be noted that, on the issue of the return of the Kuwaiti archives, some encouraging developments have taken place since Iraq has returned a first batch of documents and a practical mechanism for the return of other Kuwaiti property has been re-established.

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

UN-2

Reluctantly the sculptor opened his portfolio case and extracted a second batch of sketches.

Скульптор неохотно открыл чемоданчик и извлек вторую партию эскизов.

Literature

If you use any of Display & Video 360’s supported third-party ad servers, follow the instructions below to upload a batch of display creatives.

Если вы работаете с одним из поддерживаемых сторонних серверов объявлений, следуйте инструкциям ниже.

support.google

The control standard may be sourced externally, prepared in the laboratory from a stock solution different from the calibration standard, or prepared by batch mixing old samples.

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

UN-2

But there was something else in the batch.

Но было кое-что еще в их составе. Хм?

OpenSubtitles2018.v3

All those lost opportunities to make a fresh batch

of little demons.

Масса упущенных возможностей изготовить свеженькую кучку маленьких демонов.

Literature

Trade standard and bovine /batch ID conformity assessment

Оценка соответствия торгового стандарта и идентификации крупных рогатых скотов/партии

UN-2

Follow the batch upload process.

Выполните все требуемые действия.

support.google

Quality and animal/batch ID conformity assessment

Оценка соответствия требованиям качества и идентификации животных/партии

UN-2

Since its accession in 1998 to the Protocol to the Convention on Prohibitions or Restrictions on the Use of Certain Conventional Weapons which may be deemed to be Excessively Injurious or to have Indiscriminate Effects, his country had complied strictly with its provisions through publicity and education and a comprehensive survey of old and obsolete landmines; those which were not consistent with those provisions had been revamped and destroyed in

batches and stages.

С момента присоединения в 1998 году к Протоколу к Конвенции о запрещении или ограничении применения конкретных видов обычного оружия, которые могут считаться наносящими чрезмерные повреждения или имеющими неизбирательное действие, его страна неукоснительно выполняет положения этого документа путем осуществления информационно-пропагандистской и просветительской деятельности и проведения всеобъемлющего обследования по вопросу обезвреживания старых и устаревших наземных мин; мины, не отвечающие этим положениям, изымаются и уничтожаются целыми партиями и поэтапно.

UN-2

The first batch of # personnel of the Unit arrived early in August, comprising # regular police ( # from the south and # from the north) and # officers ( # from the south and # from the north

Первая группа из # сотрудников подразделения прибыла в начале августа, включая # кадровых полицейских ( # с юга и # с севера) и # офицеров ( # с юга и # с севера

MultiUn

Wiggert & Co. automatic scrapers are designed for feeding of aggregates from the large-sized star bins to the dosing units of the concrete batching and mixing plants.

Автоматические скреперы Wiggert & Co служат для подачи инертных материалов в область дозирования из «Звездообразных» складов с большим объемом заполнителей.

Common crawl

For batch sampling, clean storage media shall be connected, such as evacuated bags or tare-weighed filters;

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

UN-2

“We were very lucky that the entire batch of contaminated drugs was distributed from just one hospital and that it is one of the few in Lahore that uses electronic records so patients could be traced more easily.

«Нам очень повезло, что вся партия контаминированных лекарств распределялась лишь из одной больницы и что эта больница является одной из немногих больниц в Лахоре, где ведется электронная регистрация, что облегчило отслеживание пациентов.

WHO

Production examinations and tests shall be carried out on all cylinders produced in a batch

Производственные проверки и испытания проводятся на всех баллонах, изготовленных в рамках одной партии

MultiUn

Are there opportunities to batch some of our biggest texture files together?

Существует ли возможность пакетной обработки наиболее объемных файлов текстур?

Literature

In a related context, we note that, at the end of last year, Iraq returned the first batch of documents belonging to the Kuwaiti archives, and that, at the beginning of this year, Iraq also handed over some separate items of Kuwaiti properties.

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

UN-2

A sample must be taken in each batch in accordance with the provisions of paragraph 2.2.1.4. from a minimum of 20 per cent of the batch quantity, which has to be produced of the actual batch.

Образец должен отбираться из каждой

партии в соответствии с положениями 2.2.1.4, причем минимум из 20% единиц, содержащихся в этой партии, которые должны быть взяты из этой конкретной партии.

UN-2

Tracked back to a batch order belonging to a local gun shop.

Отследил его до местного оружейного магазина.

OpenSubtitles2018.v3

All right, listen, you all are gonna be the second batch of recruits coming in off the sub.

Ладно, слушайте, Вы все будете во второй группе рекрутов, приплывших на подлодке.

OpenSubtitles2018.v3

Currently the government, UNFPA and European Union (EU) are collaborating in the training of the second batch of Nurse Anesthetists who will be deployed in all districts to facilitate the handling of all emergency operations

В настоящее время правительство, ЮНФПА и Европейский союз сотрудничают в подготовке второй

группы медсестер-анастезиологов, которые будут направлены во все районы страны для участия в проведении всех экстренных операций

MultiUn

A Kipi plugin to batch convert Raw images

Модуль Kipi для пакетной обработки RAW изображений

KDE40.1

But we only make two batches a year, so…

Но мы только две партии в год делам, так что…

OpenSubtitles2018.v3

This was not a classic case of the batch used for the acquisition of council money, but marked a scheme which it was created alongside the councils.

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

Common crawl

The embryos of all the species looked like little whitish batches

of cells, no more than an eighth of an inch long.

Эмбрионы всех этих животных вначале напоминали небольшие беловатые группы клеток не больше трех миллиметров в длину.

Literature

Как я могу использовать batch file для записи в текстовый файл?



Мне нужно сделать скрипт, который может записать одну строку текста в текстовый файл в том же каталоге, что и batch file.

file batch-file text
Поделиться Источник 09stephenb     09 ноября 2013 в 16:15

7 ответов


  • Откройте текстовый файл и ярлык программы в Windows batch file

    У меня есть два файла в одной папке, которые я хотел бы запустить. Один из них-файл .txt , а другой-ярлык программы для .exe . Я хотел бы сделать batch file в том же месте, чтобы открыть текстовый файл и ярлык, а затем закрыть batch file (но текстовый файл и программа остаются открытыми). Я…

  • Вставка переменной из batch file в текстовый файл

    Как бы я insert преобразовал переменную, ранее установленную в batch file, в текстовый файл. У меня есть вставка текста в текстовый файл вниз, я просто не могу понять вставку переменной. Что я делаю SET name = Casey ECHO Hey + name > file.txt Результат Hey + name Чего я хочу Hey Casey



326

Вы можете использовать echo и перенаправить вывод в текстовый файл (см. Примечания ниже):

rem Saved in D:\Temp\WriteText.bat
@echo off
echo This is a test> test.txt
echo 123>> test.txt
echo 245.67>> test.txt

Выход:

D:\Temp>WriteText

D:\Temp>type test.txt
This is a test
123
245.67

D:\Temp>

Записи:

  • @echo off отключает печать каждой команды на консоль
  • Если вы не зададите ему определенное имя пути, перенаправление с
    >
    или >> будет записываться в текущий каталог (каталог, в котором выполняется код).
  • echo This is a test > test.txt использует один > для перезаписи любого файла, который уже существует, новым содержимым.
  • Остальные операторы echo используют два символа >> для добавления в текстовый файл (добавить в) вместо его перезаписи.
  • type test.txt просто вводит вывод файла в командное окно.

Поделиться Ken White     09 ноября 2013 в 17:05



127

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

(
  echo Line1
  echo Line2
  ...
  echo Last Line
) > filename.txt

Поделиться jeb     14 апреля 2015 в 19:24



23

echo "blahblah"> txt.txt сотрет текст и поставит бла-бла на место

echo "blahblah">> txt.txt напишет blahblah на новой строке в txt

Я думаю, что оба создадут новый txt, если его не существует (я знаю, что первый)

Где » txt.txt » написано выше, при желании можно вставить путь к файлу. например, C:\Users\<username>\desktop , который поместит его на рабочий стол.

Поделиться Darth Tater     15 июля 2015 в 06:06



14

    @echo off

    (echo this is in the first line) > xy.txt
    (echo this is in the second line) >> xy.txt

    exit

Два >> означает, что вторая строка будет добавлена к файлу (т. е. Вторая строка начнется после последней строки xy.txt).

вот как выглядит xy.txt :

this is in the first line
this is in the second line

Поделиться Organ     09 ноября 2013 в 19:10



5

@echo выключено Написание заголовка с использованием пакетных файлов цвет 0a

пример текста echo > Filename.txt Дополнительный текст echo >> Filename.txt

@ECHO OFF
Title Writing Using Batch Files
color 0a

echo Example Text > Filename.txt
echo Additional Text >> Filename.txt

Поделиться Ace     13 апреля 2015 в 06:09



4

  • Вы можете использовать copy con для написания длинного текста
  • Пример:

    C:\COPY CON [диск:][путь][Имя файла]

    …. Содержание

    F6

    1 файл(ы) копируется

Поделиться Pham Thanh     09 мая 2015 в 09:05


  • Ищете batch file для вставки новых строк в текстовый файл

    У меня есть batch file, который берет содержимое каталога загрузки изображений с портала администратора и генерирует текстовый файл, содержащий атрибут img src для каждого изображения. На данный момент каждый из этих текстовых файлов содержит атрибуты для 20 + изображений,которые я затем…

  • Как встроить текстовый файл в Windows batch file

    Мне нужно создать batch file, который записывает текстовый файл (возможно, включая переменные). В Unix с bash это тривиально: #!/bin/bash ver=1.2.3 cat > file.txt <<EOL line 1, ${ver} line 2 line 3 … EOL Каков самый простой способ сделать это с batch file? Примечание: существует полное…



2

@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

надеюсь, это поможет. вы должны изменить имена строк(IDK, как они называются) и имя файла

Поделиться John Caleb Garon     08 февраля 2016 в 14:13


Похожие вопросы:


Как я могу использовать batch file для записи в файл cmd?

я хочу написать несколько кодов в cmd by batch file {CreateObject(WScript.Shell).Run %comspec% /c start /wait cmd.exe, 0, True } этот код открывает cmd.exe .. Как я могу редактировать этот файл с…


Batch file для записи имен файлов из каталога в текстовый файл определенного формата

Хотел написать batch file, который считывает имена файлов из каталога и помещает их в текстовый файл в том же каталоге. Твист заключается в том, что имена файлов должны иметь определенный формат,…


PowerShell: запустите batch file и запишите вывод в текстовый файл

У меня есть batch file в моем скрипте PowerShell, который я хочу запустить и записать его вывод в текстовый файл. Я попробовал следующее: Start-Process C:\path\file.bat | Out-File C:\path\output.txt…


Откройте текстовый файл и ярлык программы в Windows batch file

У меня есть два файла в одной папке, которые я хотел бы запустить. Один из них-файл .txt , а другой-ярлык программы для .exe . Я хотел бы сделать batch file в том же месте, чтобы открыть текстовый…


Вставка переменной из batch file в текстовый файл

Как бы я insert преобразовал переменную, ранее установленную в batch file, в текстовый файл. У меня есть вставка текста в текстовый файл вниз, я просто не могу понять вставку переменной. Что я делаю…


Ищете batch file для вставки новых строк в текстовый файл

У меня есть batch file, который берет содержимое каталога загрузки изображений с портала администратора и генерирует текстовый файл, содержащий атрибут img src для каждого изображения. На данный…


Как встроить текстовый файл в Windows batch file

Мне нужно создать batch file, который записывает текстовый файл (возможно, включая переменные). В Unix с bash это тривиально: #!/bin/bash ver=1.2.3 cat > file.txt <<EOL line 1, ${ver} line…


batch file не читает powershell отредактированный текстовый файл правильно

У меня есть скрипт powershell, который записывает данные в текстовый файл $text = Primary |Out-File \\DS-01A\WINRedundancy\FailoverStatus.txt и batch file, который считывает содержимое текстового…


Перетащите текстовый файл в batch file, чтобы создать папки

У меня есть batch file, который создает папки с помощью текстового файла. Но я хочу изменить batch file, чтобы позволить перетаскивать любой текстовый файл для создания любых имен папок,…


Batch File: Вставить Имя Файла В Текстовый Файл

У меня есть множество текстовых файлов. Каждый текстовый файл имеет обычное расширение .txt. Я хотел бы использовать командную строку в A batch file, чтобы скопировать имя файла каждого текстового…

CMD: конструкция switch/case как быть?

Поговорим о возможности использовать в batch файлах оператора switch/case.

Потребовалось написать простой CMD скрипт для запуска трех разных команд.
Вспомнил про оператор switch, с помощью которого делал обработку в зависимости что в переменной на PHP.

Пример конструкции на языке PHP:

<?php
switch ($i) {
    case "apple":
        echo "i это яблоко";
        break;
    case "chocolate":
        echo "i это шоколадка";
        break;
    case "pie":
        echo "i это пирог";
        break;
}
?>

Пример case на Bash:

case $i in
     apple)
          echo $i "это яблоко"
          ;;
     chocolate)
          echo $i "это шоколадка"
          ;;
     windows)
          echo $i "это пирог"
          ;; 
     *)
          echo "Usage: $1 apple | chocolate| pie"
          ;;
esac

Для batch файлов такой конструкции нет, но мы сможем сделать два варианта с помощью конструкции IF и GoTO.

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

Пример с использованием

goto:
@echo off
set N=%~1
  goto :switch-case-N-%N% 2>nul || (
    echo "Usage: %~0 one | two | three"
  )
  :switch-case-N-one
    echo One
    exit /b
  :switch-case-N-two
    echo Two
    exit /b
  :switch-case-N-three
    echo Three
    exit /b

Пример с использованием IF ELSE IF:

@echo off
set N=%~1
IF "%N%"=="one" (
  echo One
) ELSE IF "%N%"=="two" (
  echo Two
) ELSE IF "%N%"=="three" (
  echo Three
) ELSE (
  echo "Usage: %~0 one | two | three"

На этом все.

Больше о batch файлах можно найти здесь.

( 2 оценки, среднее 5 из 5 )

Понравилась статья? Поделиться с друзьями:

Файл BAT или файл BATCH | GUIDA

Что такое BAT-ФАЙЛ?

Пакетные скрипты, или просто файлы Bat-файлов, существуют с ранних версий Windows. Обычно эти файлы имеют расширение .BAT, отсюда и название.

Их основные направления деятельности:
1. Избавьтесь от необходимости набирать команды DOS.
2. Позволяет быстро выполнять избыточные операции.

Пакетный файл использует команды DOS, старый добрый DOS. По этой причине он не считается настоящим языком программирования.

Как создать файл BAT?

Создать BAT-файл очень просто, но заставить его делать то, что мы хотим, зависит от сложности «проблемы», которую мы хотим решить.

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

Первые шаги и первый пример

Чтобы писать «маленькие программы» в файлах bat, вам не нужно быть программистом, с большим количеством поисков в Google команд / параметров и некоторыми тестами, вы можете быть уверены, что сможете достичь своей цели или того, что вы попросили сделать.

Как и во всех великих руководствах по программированию, первый пример — это классическое «Hello World», написанное на экране. Давайте вместе посмотрим на первые шаги по созданию файла bat и сделаем то, что нам предлагает простая задача.

1. Откроем блокнот
2. Вставляем этот код (можно копипастить)

@ эхо выкл
эхо Привет, мир!
эхо
эхо Нажмите любую клавишу для выхода
пауза> ноль

3. Сохраните файл с именем по вашему выбору, но с расширением «.bat» на рабочем столе (или измените расширение на .bat после сохранения его в .txt).
4. Запускаем пакетный скрипт простым двойным щелчком по иконке

Вот краткое объяснение используемых команд:
@echo off: выключить бег, отображение пути, по которому мы работаем
эхо Привет, мир! : Отображает текст на экране.
эхо. : команда echo с точкой выводит пустую строку
echo Нажмите любую клавишу для выхода: отображает текст на экране
pause> nul: приостанавливает программу и с параметром «> nul» закрывает окно вывода

И вот результат: слова «Hello World!»

Что-нибудь посложнее (и полезнее)

Это простой пример, который, на мой взгляд, не дает большого представления о том, что на самом деле позволяет делать bat-файл. Я лично создал файлы bat, которые извлекают, фильтруют и сортируют данные из базы данных SQL и отправляют их в определенную папку FTP с администратором и паролем известного агентства статистики погоды, все автоматически и каждые 15 минут. Это пример того, что можно сделать с этими исполняемыми файлами.

В ближайшие несколько дней мы объясним еще несколько команд, а также объясним, когда они будут работать гораздо полезнее, например, выключение компьютера одним щелчком мыши через заданное количество секунд. Или файл bat, который простым щелчком автоматически открывает страницу Chrome с нашими наиболее часто используемыми страницами, такими как Facebook, Hotmail, Gmail и т. Д., Прямо со значком на рабочем столе.

Чтобы узнать больше, не стесняйтесь обращаться к нам в комментариях ниже!

Пакетный режим

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

Пакетные файлы

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

  make.file(inputdir=./MiSeq_SOP, тип=gz, префикс=стабильность)
make.contigs(файл=текущий, процессоры=12)
screen.seqs(fasta=current, group=current, maxambig=0, maxlength=275)
уникальный.seqs()
count.seqs(name=current, group=current)
align.seqs(fasta=current, reference=silva.v4.fasta)
  

Вы можете добавить комментарии к пакетному файлу, начав строку с ‘#’ символ. Например:

  #Это мой комментарий о моем анализе
делать.файл(входной_каталог=./MiSeq_SOP, тип=gz, префикс=стабильность)
#соберите парные чтения
make.contigs(файл=текущий, процессоры=12)
  

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

Переменные среды можно использовать для обобщения пакетного файла для повторного использования. Это может быть полезно для стандартизации анализа, проводимого в вашей лаборатории. Давайте добавьте переменные среды в указанный выше пакетный файл.

Формат

Формат переменных окружения: [тег]=[значение]. Например, давайте создадим переменную среды для опции процессоров.

mothur автоматически выберет системную переменную среды. За например, вы можете установить переменные в bash, а затем запустить пакетный файл:

  $ export REFERENCE_LOCATION=/Users/sarahwestcott/Desktop/release
$ экспорт ALIGNREF=silva.v4.fasta
$ экспорт TAXONREF_FASTA=trainset9_032012.pds.fasta
$ экспорт TAXONREF_TAX=trainset9_032012.pds.tax
$ export CONTAMINENTS=Хлоропласт-Митохондрии-неизвестно-Археи-Эукариоты
$ экспорт LOGNAME=MiSEQ_SOP_mouse_03032020
$ export DATA=/Users/sarahwestcott/Desktop/MiSeq_SOP
$ экспорт TYPE=gz
$ экспорт PROC=12
$ ./mothur "стабильность.batch"
  

, где стабилизация.пакет выглядит так:

  set.logfile(name=$LOGNAME)
make.file(inputdir=$DATA, type=$TYPE, prefix=стабильность)
make.contigs(файл=текущий, процессоры=$PROC)
screen.seqs(fasta=current, group=current, maxambig=0, maxlength=275)
уникальный.seqs()
count.seqs(name=current, group=current)
align.seqs(fasta=current, reference=$REFERENCE_LOCATION/$ALIGNREF)
screen.seqs(fasta=current, count=current, start=1968, end=11550, maxhomop=8)
фильтр.seqs(fasta=current, vertical=T, trump=.)
unique.seqs(fasta=current, count=current)
pre.cluster(fasta=current, count=current, diffs=2)
chimera.vsearch(fasta=current, count=current, dereplicate=t)
remove.seqs(fasta=current, accnos=current)
classify.seqs(fasta=current, count=current, reference=$REFERENCE_LOCATION/$TAXONREF_FASTA, таксономия=$REFERENCE_LOCATION/$TAXONREF_TAX, cutoff=80)
remove.lineage(fasta=current, count=current, taxonomy=current, taxon=$CONTAMINENTS)
remove.groups(count=current, fasta=current, taxonomy=current, groups=Mock)
кластер.split(fasta=текущий, count=текущий, таксономия=текущий, splitmethod=классифицировать, taxlevel=4, cutoff=0,15)
make.shared(list=current, count=current, label=0,03)
classify.otu(list=current, count=current, taxonomy=current, label=0,03)
филотип (таксономия = текущий)
make.shared(list=current, count=current, label=1)
classify.otu(list=current, count=current, taxonomy=current, label=1)
  

Использовать

Символ «$» указывает mothur, что значение является средой переменная, которая будет заменена фактическим значением во время выполнения.Например:

  ПРОК=12
make.contigs(файл=текущий, процессоры=$PROC)
  

эквивалентно

  make.contigs (файл = текущий, процессоры = 12)
  

В пакетный файл можно добавить несколько переменных среды.

  # Установить переменные среды
REFERENCE_LOCATION=/Users/sarahwestcott/Desktop/release
DATA=/Users/sarahwestcott/Desktop/MiSeq_SOP
ТИП=gz
ПРОК=12
#список команд для запуска
make.file(inputdir=$DATA, type=$TYPE, prefix=стабильность)
делать.contigs(файл=текущий, процессоры=$PROC)
screen.seqs(fasta=current, group=current, maxambig=0, maxlength=275)
уникальный.seqs()
count.seqs(name=current, group=current)
align.seqs(fasta=current, reference=$REFERENCE_LOCATION/silva.v4.fasta)
  

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

  REFERENCE_LOCATION=/Users/sarahwestcott/Desktop/release
ALIGNREF=silva.v4.fasta
TAXONREF_FASTA=trainset9_032012.pds.Фаста
TAXONREF_TAX=trainset9_032012.pds.tax
ЗАГРЯЗНИТЕЛИ=Хлоропласт-Митохондрии-неизвестно-Археи-Эукариоты
LOGNAME=MiSEQ_SOP_mouse_03032020
DATA=/Users/sarahwestcott/Desktop/MiSeq_SOP
ТИП=gz
ПРОК=12
#пакетные команды
set.logfile(имя=$LOGNAME)
make.file(inputdir=$DATA, type=$TYPE, prefix=стабильность)
make.contigs(файл=текущий, процессоры=$PROC)
screen.seqs(fasta=current, group=current, maxambig=0, maxlength=275)
уникальный.seqs()
count.seqs(name=current, group=current)
align.seqs(fasta=current, reference=$REFERENCE_LOCATION/$ALIGNREF)
экран.seqs(fasta=current, count=current, start=1968, end=11550, maxhomop=8)
filter.seqs(fasta=current, vertical=T, trump=.)
unique.seqs(fasta=current, count=current)
pre.cluster(fasta=current, count=current, diffs=2)
chimera.vsearch(fasta=current, count=current, dereplicate=t)
remove.seqs(fasta=current, accnos=current)
classify.seqs(fasta=current, count=current, reference=$REFERENCE_LOCATION/$TAXONREF_FASTA, таксономия=$REFERENCE_LOCATION/$TAXONREF_TAX, cutoff=80)
remove.lineage(fasta=current, count=current, taxonomy=current, taxon=$CONTAMINENTS)
удалять.группы(count=current, fasta=current, taxonomy=current, groups=Mock)
cluster.split(fasta=текущий, count=текущий, таксономия=текущий, splitmethod=classify, taxlevel=4, cutoff=0,15)
make.shared(list=current, count=current, label=0,03)
classify.otu(list=current, count=current, taxonomy=current, label=0,03)
филотип (таксономия = текущий)
make.shared(list=current, count=current, label=1)
classify.otu(list=current, count=current, taxonomy=current, label=1)
  

Вложенные пакетные файлы

mothur позволяет запускать пакетный файл из другого пакетного файла.За Например, давайте создадим пакетный файл, который устанавливает переменные среды и использует Стандартную операционную процедуру лаборатории для анализа.

Сначала создадим общий пакетный файл для запуска MiSeq_SOP с именем Стабильность.пакет:

  #Это стандартная операционная процедура для анализа в лаборатории Schloss.
set.logfile(имя=$LOGNAME)
make.file(inputdir=$DATA, type=$TYPE, prefix=стабильность)
make.contigs(файл=текущий, процессоры=$PROC)
screen.seqs(fasta=current, group=current, maxambig=0, maxlength=275)
уникальный.последовательности ()
count.seqs(name=current, group=current)
align.seqs(fasta=current, reference=$REFERENCE_LOCATION/$ALIGNREF)
screen.seqs(fasta=current, count=current, start=1968, end=11550, maxhomop=8)
filter.seqs(fasta=current, vertical=T, trump=.)
unique.seqs(fasta=current, count=current)
pre.cluster(fasta=current, count=current, diffs=2)
chimera.vsearch(fasta=current, count=current, dereplicate=t)
remove.seqs(fasta=current, accnos=current)
classify.seqs(fasta=current, count=current, reference=$REFERENCE_LOCATION/$TAXONREF_FASTA, таксономия=$REFERENCE_LOCATION/$TAXONREF_TAX, cutoff=80)
удалять.родословная (fasta = текущая, count = текущая, таксономия = текущая, таксон = $CONTAMINENTS)
remove.groups(count=current, fasta=current, taxonomy=current, groups=Mock)
cluster.split(fasta=текущий, count=текущий, таксономия=текущий, splitmethod=classify, taxlevel=4, cutoff=0,15)
make.shared(list=current, count=current, label=0,03)
classify.otu(list=current, count=current, taxonomy=current, label=0,03)
филотип (таксономия = текущий)
make.shared(list=current, count=current, label=1)
classify.otu(list=current, count=current, taxonomy=current, label=1)
  

Теперь давайте создадим вложенный пакет, содержащий особенности для наших данных:

  #set расположение лабораторных эталонных файлов
REFERENCE_LOCATION=/Users/sarahwestcott/Desktop/release
#установить местоположение моих данных
DATA=/Users/sarahwestcott/Desktop/MiSeq_SOP
#установить тип данных.т. е. fastq или gz
ТИП=fastq
#set количество процессоров для использования во время анализа
ПРОК=12
#ссылка для выравнивания
ALIGNREF=silva.v4.fasta
#references для классификации
TAXONREF_FASTA=trainset9_032012.pds.fasta
TAXONREF_TAX=trainset9_032012.pds.tax
#containments чтобы удалить из данных
ЗАГРЯЗНИТЕЛИ=Хлоропласт-Митохондрии-неизвестно-Археи-Эукариоты
#logfile имя для этого анализа
LOGNAME=MiSEQ_SOP_mouse_03032020
#run generic Стандартная операционная процедура для анализа в лаборатории Schloss
стабильность.пакет
  

Объединение команд, переменных и пакетных файлов

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

  REFERENCE_LOCATION=/Users/sarahwestcott/Desktop/release
#tailor выровнять ссылку на регион v4
pcr.seqs(fasta=$REFERENCE_LOCATION/silva.bacteria.fasta, start=11894, end=25319, keepdots=F)
rename.file(fasta=current, new=$REFERENCE_LOCATION/silva.v4.fasta)
DATA=/Users/sarahwestcott/Desktop/MiSeq_SOP
ТИП=fastq
ПРОК=12
ALIGNREF=silva.v4.fasta
TAXONREF_FASTA=trainset9_032012.pds.fasta
TAXONREF_TAX=trainset9_032012.pds.tax
ЗАГРЯЗНИТЕЛИ=Хлоропласт-Митохондрии-неизвестно-Археи-Эукариоты
LOGNAME=MiSEQ_SOP_mouse_03032020
#run generic Стандартная операционная процедура для анализа в лаборатории Schloss
./стабильность.пакет
  

Чтобы запустить mothur в пакетном режиме, введите имя пакетного файла после название программы. Например:

  $ ./mothur "batchfileName"

$ ./mothur "MiSEQ_SOP_mouse_03032020.batch"
  

Интерес представляет командная строка режим.

Ревизии

  • 1.44.0 — Добавляет переменные среды и вложенные пакеты. #601 #658

Вставка пакетных файлов в Управление привилегиями для Windows

  1. Выберите группу приложений, в которую вы хотите добавить приложение.
  2. Щелкните правой кнопкой мыши и выберите Вставить приложение > Пакетный файл .
  3. Вы можете оставить Имя файла или папки пусто, чтобы соответствовать всем приложениям этого типа, введите конкретное имя или путь вручную или нажмите Просмотр файла , Просмотр папки , или Шаблон .
  4. При необходимости введите описание. По умолчанию это имя приложения, которое вы вставляете.
  5. Вам необходимо настроить критерии соответствия для исполняемого файла. Вы можете настроить:
    • Название файла или папки
    • Строка командной строки
      • Матч привода
      • Файл HASH (SHA-1 отпечаток пальца
      • Доверенные спички владения
      • Приложение требует возвышения (UAC )
      • Родительский процесс соответствует
      • URL-адрес источника соответствует
      • Идентификатор зоны BeyondTrust существует
    • Вам необходимо настроить Дополнительные параметры для приложения.Вы можете настроить:
      • Разрешить дочерним процессам соответствовать этому определению приложения
      • Принудительно использовать стандартные права пользователя в общих диалоговых окнах открытия и сохранения файлов
    • Нажмите ОК . Active X Control добавляется в группу приложений.
Для получения дополнительной информации см. следующее:

окон. Почему этот пакетный файл не работает в строке «REM»?

Я имею в виду вопрос Добавить текст в конец имени файла (но перед расширением), используя командный файл , так как у меня та же проблема.Используя 32-разрядную версию Windows 7 Enterprise (знаю, знаю…) со всеми обновлениями, я написал крошечный командный файл pdfrename.bat , состоящий всего из трех строк:

  1. комментарий, начинающийся с REM и нет «скрытый» знак продолжения правее строки

  2. предлагаемая команда, скопированная из источника, предоставленного @Karan, закомментирована с помощью REM

  3. принятая команда для партии (удвоение % ):

      Переработка REM 16.12.2020
    REM для %a в (*.txt) do ren "%~a" "%~na версия 1%~xa"
    для %%F в (*.pdf) do ren "%%~F" "%%~nF OdB%%~xF"
      

Запуск команды (3.) из командной строки,

  для %F в ​​(*.pdf) do ren "%~F" "%~nF OdB%~xF"
  

работает нормально.

Но выполнение всего пакетного файла pdfrename.bat из проводника Windows не удается. Запуск командного файла из командной строки pdfrename.bat приводит к ошибке синтаксиса сообщения об ошибке:

  Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~na версия 1%~xa"
[...]
  

Вам не нужно понимать немецкий язык. Важным моментом является то, что сообщение об ошибке относится к закомментированной второй строке (2.), а не к третьей строке!

Пробовал перепечатать REM , вставил после REM табулятор, после первого вставил второй REM ( REM REM .... ), вставил третью строку после второй с таким же содержанием и удалил потом вторая строка — ничего не изменилось: командный файл завершается на закомментированной второй строке синтаксической ошибкой.Как только инкриминируемая вторая строка удаляется из пакета, пакет работает нормально.

Я искал «REM игнорируется», но безрезультатно, поэтому пишу сюда. Я никогда раньше не слышал и не испытывал, чтобы командный процессор пытался хотя бы проанализировать закомментированную строку — и в случае, если что-то не так с кодом после знака комментария, он завершает пакетный скрипт.

Погружение в язык пакетных сценариев | Программа инженерного образования (EngEd)

Пакетные команды часто используются для запуска программ или управления ими в среде Windows.Его также можно использовать для серверных установок.

Введение

Если вы пишете последовательность команд пакетной обработки и сохраняете файл с расширением .bat или .cmd , то этот файл называется пакетным файлом.

Почему язык пакетного программирования?
  • Мощный : вы можете выполнять множество сложных операций одной командой.
  • Команды короткие , поэтому их легко запомнить и они могут сэкономить ваше время.

Предпосылки

Перед тем, как мы приступим к делу, читателю необходимо иметь следующее:

  • Хорошее понимание любого языка программирования.
  • Базовое понимание системного программирования.
  • Базовые знания командной строки.

Создать пакетный файл

Создать пакетный файл очень просто: откройте любой текстовый редактор и сохраните этот файл с расширением .bat . Если вы хотите запустить этот файл, вам нужно щелкнуть по нему или вызвать его из командной строки.

Давайте программировать!

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

Мы использовали знак «@», чтобы команда не появлялась.

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

  @эхо выключено
каталог "E:\Section.io" > D:\list.txt
  

Символ «>» используется для помещения вывода в текстовый файл вместо стандартного вывода.Стандартный вывод относится к стандартизированным потокам данных, создаваемым CMD, которые представляют собой обычный текст, отображаемый в CMD.

Вы можете вводить данные от пользователя, используя аргументы %number.

Например:

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

Где D:\ представляет %1, а D:\list.txt представляет %2.

Теперь мы также перечислим все подпапки:

  @эхо выключено
каталог /s "E:\Section.io" > D:\list.txt
  

Возможность использования подстановочных знаков в пакетном файле значительно расширяет его возможности. Например, давайте отобразим имя каждого файла MP3 на диске C:

.
  @эхо выключено
каталог /s "C:\*.mp3"
  

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

В приведенном выше коде вы можете сделать резервную копию файлов первой папки (%1) и файлов ее подпапок во второй папке (%2). Чтобы включить любой скрытый файл, вы должны добавить параметр командной строки /h .Кроме того, вы можете добавить /e , чтобы включить любые пустые подкаталоги.

Теперь давайте создадим простой скрипт для удаления всех временных файлов с расширением TMP :

Процесс выполнения пакетного файла является построчным. Однако вы можете использовать команду goto , которая дает вам возможность перейти к определенному разделу вашего кода.

Теперь давайте создадим приложение, которое переносит все файлы из подкаталогов одного каталога в другой.

  xcopy %1 %2 /s /e
если уровень ошибки 4 перейти к :memoryislow
если уровень ошибки 0 перейти к: выход
: память низкая
echo Неверный диск или нехватка памяти.
перейти: выход
:выход
  

Двоеточие обозначает метку, на которую можно перейти.

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

Другой способ сделать комментарий в пакетном файле — использовать :: вместо REM , но имейте в виду, что если вы используете слишком много REM , это может замедлить ваш код, потому что пакетный файл выполняет каждую строку кода. .

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

Давайте посмотрим на синтаксис:

  Переменная SET=строка
Рэм это комментарий
REM переменная окружения может быть новой или уже существующей.
  

Например, откройте свой терминал, затем введите SET windir , он отобразит C:\WINDOWS , что является значением этой переменной.

Вы можете использовать переключатель /A с командой SET для выполнения некоторых основных арифметических операций:

Символ Операция
+ Дополнение
Вычитание
* Умножение
/ Подразделение

Синтаксис будет таким:

  SET /A переменная=арифметическое выражение
  

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

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

  @эхо выключено
set /p x=введите первое число:
set /p y=введите второе число:
установить /a z= %x% / %y%
если %y%==0 (
    эхо-ошибка
) еще (
    эхо Ответ: %z%
)
  

Пакетная обработка предоставляет множество возможностей.

Например, вы можете сделать пинг-запрос:

  @эхо выключено
эхо пожалуйста подождите
пропинговать google.com -n 1| найти «Ответить от»
если %errorlevel% GTR 0 echo вы не подключены
если не %errorlevel% GTR 0 эхо вы подключены
  

В приведенном выше коде мы сделали один запрос ping в Google.ком. GTR — это выражение для «больше чем», вы также можете использовать следующее:

Оператор Значение
ЭКВ равно
ВНЭК не равно
СЖО меньше
LEQ меньше или равно
GEQ больше или равно

Создадим калькулятор с помощью пакетной обработки:

  @эхо выключено
Название Калькулятор
цвет 2е
:верхняя
эхо Напишите выражение:
установить / p выражение =
установить /a ответ=%expr%
эхо %expr%=%ans%
Пауза
перейти :верх
  

Заголовок позволяет изменить имя окна на любое другое.

Вы можете изменить цвет, просто используя следующее:

Символ Цвет Символ Цвет
0 Черный 8 Серый
1 Военно-морской флот 9 Синий
2 Зеленый А Лайм
3 Бирюзовый Б Аква
4 Бордовый С Красный
5 Фиолетовый Д Фуксия
6 Олива Э Желтый
7 Серебро Ф Белый

В нашем коде мы использовали «2e», первая цифра для фона, а вторая для цвета текста.Если вы запустите приведенный выше код, вы увидите следующее:

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

Мы говорили о команде SET в предыдущих примерах, теперь мы собираемся опираться на это знание переменных среды с помощью некоторых примеров.

Удалить переменную

Если ввести имя переменной со знаком равенства, то переменная будет удалена.

Подобно следующему:

Постоянная настройка

Для внесения постоянных изменений необходимо использовать SETX .Он расширяет команду SET , так что любое изменение переменной среды будет постоянным.

Команда добавления папки в путь:

  setx PATH=%PATH%;C:\нужный-путь-здесь\
  

Изменения, сделанные с помощью SETX , повлияют только на следующее командное окно. На текущую не повлияет, т.к. записывает переменные в master окружение в реестр.

Теперь давайте узнаем, как определить, не найдено ли имя переменной.Мы должны использовать %ERRORLEVEL%, который будет равен 1, если команда не нашла имя переменной.

Например:

  @эхо выключено
сет ахмад
Если %ERRORLEVEL% == 1 (эхо-ошибка)
  

Вывод будет ошибка .

Доцент

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

Например, если вы наберете assoc в своем терминале, он отобразит все ассоциации файлов, которые существуют на вашем компьютере.

Другой пример:

  ассоциированный | найти ".doc" > D:\list.txt
  

Канал перенаправит assoc на вход найдет и будет использоваться как второй его параметр.

Вывод ассоциаций файлов теперь будет в файле lists.txt:

  .doc=Word.Document.8
.dochtml=wordhtmlфайл
.docm=Word.DocumentMacroEnabled.12
.docmhtml=wordmhtmlфайл
.docx=Word.Документ.12
.docxml=файл wordxml
  

Заключение

В этом руководстве мы узнали самое важное о языке сценариев пакетной службы.Если вас интересует системное программирование. Я рекомендую вам изучить Windows PowerShell.

В отличие от большинства оболочек, которые принимают и возвращают текст, PowerShell построен на основе среды выполнения .NET Common Language Runtime (CLR), которая принимает и возвращает объекты .NET. Однако пакетная обработка по-прежнему будет очень важна для запуска утилит в среде Windows.


Рецензирование Автор: Майк Уайт

Пакетный файл | Microsoft Wiki

Очистка

Чтобы соответствовать стандартам качества Microsoft Wiki, эта статья или раздел могут потребовать очистки.Пожалуйста, помогите улучшить статью.

Пакетный файл

Пакетный файл — это файл сценария в DOS, OS/2 и Microsoft Windows. Он состоит из серии команд, которые должны выполняться интерпретатором командной строки и хранятся в текстовом файле. Пакетный файл может содержать любую команду, которую интерпретатор принимает в интерактивном режиме, и использовать конструкции, обеспечивающие условное ветвление и цикл внутри пакетного файла, такие как метки IF , FOR и GOTO .Термин «пакет» происходит от пакетной обработки, что означает «неинтерактивное выполнение», хотя пакетный файл не может обрабатывать пакет нескольких данных.

Подобно языку управления заданиями (JCL), DCL и другим системам на мэйнфреймах и мини-компьютерах, пакетные файлы были добавлены для облегчения работы, необходимой для определенных обычных задач, позволяя пользователю настроить сценарий для их автоматизации. При запуске пакетного файла программа оболочки (обычно COMMAND.COM или cmd.exe) считывает файл и выполняет его команды, обычно построчно. [1] Unix-подобные операционные системы, такие как Linux, имеют аналогичный, но более гибкий тип файла, называемый сценарием оболочки. [2]

Расширение имени файла .bat используется в DOS и Windows. Windows NT и OS/2 также добавили .cmd . Пакетные файлы для других сред могут иметь другие расширения, например, .btm в оболочках, связанных с 4DOS, 4OS2 и 4NT.

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

Варианты

ДОС

В DOS пакетный файл можно запустить из интерфейса командной строки, введя его имя, затем любые необходимые параметры и нажав клавишу Template:Keypress. При загрузке DOS файл AUTOEXEC.BAT, если он присутствует, выполняется автоматически, поэтому любые команды, необходимые для настройки среды DOS, могут быть помещены в этот файл.Пользователи компьютеров должны иметь файл AUTOEXEC.BAT для установки системной даты и времени, инициализации среды DOS, загрузки любых резидентных программ или драйверов устройств или инициализации сетевых подключений и назначений.

Расширение имени файла .bat идентифицирует файл, содержащий команды, которые выполняются интерпретатором команд COMMAND.COM построчно, как если бы это был список команд, введенных вручную, с некоторыми дополнительными специфичными для пакетного файла командами для базового программирования функциональные возможности, включая команду GOTO для изменения потока выполнения строки.

Ранние версии Windows

Microsoft Windows была представлена ​​в 1985 году как наложение графического пользовательского интерфейса (GUI) на текстовые операционные системы и было разработано для работы в DOS. Для его запуска использовалась команда WIN , которую можно было добавить в конец файла AUTOEXEC.BAT, чтобы разрешить автоматическую загрузку Windows. В более ранних версиях можно было запустить файл типа .bat из Windows в командной строке MS-DOS. Windows 3.1x и более ранние версии, а также Windows 9x вызывали COMMAND.COM для запуска пакетных файлов.

ОС/2

Операционная система IBM OS/2 поддерживала пакетные файлы в стиле DOS. Он также включал версию REXX, более продвинутого языка сценариев пакетных файлов. IBM и Microsoft начали разработку этой системы, но во время ее создания разошлись после спора; в результате этого IBM упомянула о своей DOS-подобной консольной оболочке без упоминания Microsoft, назвав ее просто DOS, хотя это, казалось бы, не имело никакого значения в отношении того, как пакетные файлы работали из COMMAND.COM.

Интерпретатор пакетных файлов OS/2 также поддерживает команду EXTPROC. Это передает пакетный файл программе, названной в файле EXTPROC, в качестве файла данных. Названная программа может быть файлом сценария; это похоже на #! механизм.

Windows NT

В отличие от Windows 98 и более ранних версий, семейство операционных систем Windows NT не зависит от MS-DOS. Windows NT представила усовершенствованный 32-разрядный интерпретатор команд (cmd.exe), который мог выполнять сценарии с расширением .Расширение CMD или .BAT. В Cmd.exe добавлены дополнительные команды, а существующие реализованы несколько иначе, так что один и тот же командный файл (с другим расширением) может по-разному работать с cmd.exe и COMMAND.COM. В большинстве случаев работа идентична, если не используются несколько неподдерживаемых команд. Расширения Cmd.exe для COMMAND.COM можно отключить для совместимости.

Microsoft выпустила версию cmd.exe для Windows 9x и ME под названием WIN95CMD, чтобы пользователи более старых версий Windows могли использовать определенные cmd.Пакетные файлы в стиле exe.

Начиная с Windows 8 [обновление] cmd.exe является обычным интерпретатором команд для пакетных файлов; более старую версию COMMAND.COM можно запускать и в 32-разрядных версиях Windows, способных запускать 16-разрядные программы. [номер 1]

Расширения имени файла

.bat
Первое расширение имени файла, используемое Microsoft для пакетных файлов. Это расширение работает с DOS и всеми версиями Windows под COMMAND.COM или cmd.exe, несмотря на разные способы выполнения командных файлов двумя интерпретаторами команд.
.cmd
Используется для пакетных файлов в семействе Windows NT и отправляется в cmd.exe для интерпретации. COMMAND.COM не распознает это расширение имени файла, поэтому сценарии cmd.exe не выполняются по ошибке в неправильной среде Windows. Кроме того, append , dpath , ftype , set , path , assoc и prompt команды, при выполнении только из файла errorlevel 901 .bat, измените значение переменной 901 .bat. при ошибке, тогда как изнутри файла .cmd, они повлияют на уровень ошибок даже при возврате без ошибок. [3] Он также используется IBM OS/2 для пакетных файлов.
.btm
Расширение, используемое 4DOS, 4OS2, 4NT и Take Command. Эти скрипты быстрее, особенно с более длинными, так как скрипт загружается полностью готовым к выполнению, а не построчно. [4]

Параметры пакетного файла

COMMAND.COM и cmd.exe поддерживают ряд специальных переменных ( %0 , %1 по %9 ) для ссылки на путь и имя пакетного задания и первые девять вызывающих параметров. из пакетного задания, см. также SHIFT .Несуществующие параметры заменяются строкой нулевой длины. Их можно использовать аналогично переменным среды, но они не сохраняются в среде. Microsoft и IBM называют эти переменные замещающими параметрами или заменяемыми параметрами , тогда как Digital Research, Novell и Caldera установили для них термин замещающих переменных [5] . JP Software называет их параметрами пакетного файла . [6]

Примеры

В этом примере пакетного файла отображается Hello World! , запрашивает и ждет, пока пользователь нажмет клавишу, а затем завершает работу.(Примечание: не имеет значения, написаны ли команды строчными или прописными буквами, если только вы не работаете с переменными)

 @ЭХО ВЫКЛ.
ЭХО Привет, мир!
ПАУЗА
 

Чтобы выполнить файл, он должен быть сохранен с суффиксом расширения имени файла .bat (или .cmd для операционных систем типа Windows NT) в текстовом формате, обычно создаваемом с помощью текстового редактора, такого как Блокнот Microsoft, или работающего текстового процессора. в текстовом режиме.

При выполнении отображается следующее:

 Привет, мир!
Нажмите любую клавишу для продолжения .. .
 

Пояснение

Интерпретатор выполняет каждую строку по очереди, начиная с первой. Символ @ в начале любой строки не позволяет подсказке отображать эту команду во время ее выполнения. Команда ECHO OFF отключает подсказку навсегда или до тех пор, пока она не будет включена снова. Комбинированный @ECHO OFF часто является первой строкой пакетного файла, что предотвращает отображение любых команд, включая саму себя. Затем выполняется следующая строка, и ECHO Hello World! Команда выводит Hello World! .Выполняется следующая строка, и команда PAUSE отображает Нажмите любую клавишу для продолжения. . . и приостанавливает выполнение скрипта. После нажатия клавиши скрипт завершается, так как больше нет команд. В Windows, если сценарий выполняется из уже запущенного окна командной строки, окно остается открытым в командной строке, как в MS-DOS; в противном случае окно закрывается по завершении.

Ограничения и исключения

Нулевые значения в переменных

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

Например, если %foo% пусто, этот оператор:

анализирует как ошибочную конструкцию:

Аналогично, если %foo% содержит abc def , тогда возникает другая синтаксическая ошибка:

 IF abc def==bar ECHO Равно
 

Обычный способ предотвратить эту проблему — заключать расширения переменных в кавычки, чтобы пустая переменная раскрывалась в допустимое выражение IF ""=="bar" вместо недопустимого IF ==bar .Текст, который сравнивается с переменной, также должен быть заключен в кавычки, потому что кавычки не являются специальным синтаксисом разграничения; эти персонажи представляют себя.

 ЕСЛИ "%foo%"=="bar" ECHO Равно
 

Задержка !VARIABLE! расширение, доступное в Windows 2000 и более поздних версиях, может использоваться, чтобы избежать этих синтаксических ошибок. В этом случае пустые переменные или переменные, состоящие из нескольких слов, не вызывают синтаксическую ошибку, поскольку значение раскрывается после анализа команды IF:

Другое отличие Windows 2000 и выше заключается в том, что пустая переменная (неопределенная) не заменяется.Как описано в предыдущих примерах, предыдущее поведение пакетного интерпретатора привело бы к пустой строке. Пример:

 C:\>установить MyVar=
C:\>эхо %MyVar%
%MyVar%

C:\>if "%MyVar%"=="" (echo MyVar не определено) else (echo MyVar равно %MyVar%)
MyVar — это %MyVar%
 

Пакетные интерпретаторы до Windows 2000 отображали бы результат MyVar не определено .

Кавычки и пробелы в передаваемых строках

В отличие от процессов Unix/POSIX, которые получают свои аргументы командной строки, уже разделенные оболочкой на массив строк, процесс Windows получает всю командную строку как одну строку через функцию API GetCommandLine.В результате каждое приложение Windows может реализовать собственный синтаксический анализатор для разделения всей командной строки на аргументы. Многие приложения и инструменты командной строки разработали свой собственный синтаксис для этого, поэтому не существует единого соглашения по заключению в кавычки или экранированию метасимволов в командных строках Windows.

  • Для некоторых команд пробелы рассматриваются как разделители, разделяющие аргументы, если только эти пробелы не заключены в кавычки. Существуют различные соглашения о том, как кавычки могут быть переданы в приложение:
    • Широко используемое соглашение реализуется анализатором командной строки, встроенным в библиотеку времени выполнения Microsoft Visual C++, в функции CommandLineToArgvW.Он использует соглашение о том, что 2 n обратных косых черт, за которыми следует кавычка («), дают n обратных косых черт, за которыми следует начальная/конечная кавычка, тогда как (2 n )+1 обратная косая черта, за которой следует кавычка, снова дает n обратных косых черт. за которым следует литерал кавычек. То же соглашение является частью спецификации .NET Framework. ] (Изменение CRT в 2008 году [msvcr90] изменило эту недокументированную обработку кавычек. [8] ) Это полезно для вставки кавычки в аргумент без повторного включения интерпретации метасимволов cmd, таких как |, & и >. (cmd не распознает обычное \» как экранирование кавычки. Он повторно включает эти специальные значения при просмотре кавычки, думая, что цитата закончилась.)
  • Согласно другому соглашению, одинарная кавычка («») не включается в строку. Однако часть строки может содержать экранированная кавычка («»»). [ ссылка необходима ]
  • Еще одно распространенное соглашение связано с использованием портированных программ, производных от Cygwin. Он не различает обратную косую черту перед кавычками или перед ними. См. glob (программирование) § Windows и DOS для получения информации об этих альтернативных анализаторах командной строки. [9]
  • Некоторые важные команды Windows, например —-

 и ----
 

, используйте свои правила. [8]

  • Для других команд пробелы не рассматриваются как разделители и поэтому не нуждаются в кавычках.Если включены кавычки, они становятся частью строки. Это относится к некоторым встроенным командам, таким как echo.

Если строка содержит кавычки и должна быть вставлена ​​в другую строку текста, которая также должна быть заключена в кавычки, требуется особое внимание к механизму цитирования:

 C:\>set foo="эта строка заключена в кавычки"

C:\>Эхо "тест 1 %foo%"
"тест 1 "эта строка заключена в кавычки""

C:\>eventcreate /T Предупреждение /ID 1 /L Система /SO "Источник" /D "Пример: %foo%"
ОШИБКА: недопустимый аргумент/параметр — «строка».Введите "EVENTCREATE /?" для использования.
 

В Windows 2000 и более поздних версиях решение состоит в том, чтобы заменить каждое вхождение символа кавычек в значении серией из трех символов кавычек:

 C:\>set foo="эта строка заключена в кавычки"

C:\> установить foo=%foo:"="""%

C:\>Эхо "тест 1 %foo%"
"тест 1"""эта строка заключена в кавычки""""

C:\>eventcreate /T Предупреждение /ID 1 /L Система /SO "Источник" /D "Пример: %foo%"
УСПЕХ: В журнале/источнике «Источник» создается событие типа «Предупреждение».| баз
C:\>эхо !foo!
бар | баз
 

Спящий режим или задержка по сценарию

До тех пор, пока в Windows Vista не появилась команда TIMEOUT, не было простого способа реализовать временную паузу, поскольку команда PAUSE приостанавливает выполнение сценария на неопределенное время, пока не будет нажата какая-либо клавиша.

Было возможно много обходных путей, [10] , но, как правило, они работали только в некоторых средах: команда CHOICE была недоступна в старых версиях DOS, PING был доступен только при установленном TCP/IP и т. д.У Microsoft не было решения, но ряд небольших служебных программ можно было установить из других источников. Коммерческим примером может служить команда Norton Utilities Batch Enhancer (BE) 1988 года, где BE DELAY 18 будет ждать 1 секунду, или свободный 94-байтовый WAIT.COM [11] , где WAIT 5 будет ждать 1 секунду. 5 секунд, затем верните управление сценарию. Большинство таких программ представляют собой 16-разрядные файлы .COM, поэтому они несовместимы с 64-разрядной версией Windows.

Вывод текста с удаленным CR/LF

Обычно ко всему печатному тексту автоматически добавляются управляющие символы для возврата каретки (CR) и перевода строки (LF) в конце каждой строки.

  • пакетный тест.bat
     C:\>batchtest.bat
    фу
    бар
     

Не имеет значения, используют ли две эхо-команды одну и ту же командную строку; коды CR/LF вставляются, чтобы разбить вывод на отдельные строки:

 C:\>@echo Сообщение [email protected] Сообщение 2
Сообщение 1
Сообщение 2
 

Уловка, обнаруженная в Windows 2000 и более поздних версиях, заключается в использовании специальной подсказки для ввода для вывода текста без CR/LF в конце текста.В этом примере CR/LF следует не за Сообщением 1, а за строкой 2 и строкой 3:

  • пакеттест2.bat
     @эхо выключено
    установить /p ="Сообщение 1" 
     C:\>batchtest2.bat
    Сообщение 1Сообщение 2
    Сообщение 3
     

Можно использовать для вывода данных в текстовый файл без добавления CR/LF в конце:

 C:\>set /p ="Сообщение 1"data.txt
C:\>set /p ="Сообщение 2">данные.текст
C:\>set /p ="Сообщение 3">data.txt
C:\> введите data.txt
Сообщение 1Сообщение 2Сообщение 3
 

Тем не менее, нет возможности внедрить этот разделенный вывод приглашения CR/LF непосредственно в переменную среды.

Установка рабочего каталога в соответствии с унифицированным соглашением об именах (UNC) с помощью ярлыка

Невозможно иметь командную строку, использующую путь UNC в качестве текущего рабочего каталога; например \\сервер\доля\каталог\

Командная строка требует использования букв дисков для назначения рабочего каталога, что затрудняет запуск сложных пакетных файлов, хранящихся на общем ресурсе UNC сервера.Хотя пакетный файл можно запустить из пути файла UNC, рабочим каталогом по умолчанию является C:\Windows\System32\ .

В Windows 2000 и более поздних версиях обходным путем является использование ----


и

----

команда с расширениями команд. [nb 2]

Если не включено по умолчанию, расширения команд можно временно включить с помощью ----


 переключатель интерпретатора команд.

Таким образом, чтобы запустить пакетный файл в общей папке UNC, назначить временную букву диска для общей папки UNC и использовать общую папку UNC в качестве рабочего каталога пакетного файла, можно создать ярлык Windows, который выглядит следующим образом:


Атрибут рабочего каталога этого ярлыка игнорируется.

Это также решает проблему, связанную с контролем учетных записей (UAC) в Windows Vista и более поздних версиях. Когда администратор вошел в систему и UAC включен, и он пытается запустить пакетный файл от имени администратора с буквы сетевого диска, используя контекстное меню файла, вызываемое правой кнопкой мыши, операция неожиданно завершится ошибкой.Это связано с тем, что контекст привилегированной учетной записи UAC с повышенными правами не имеет назначенных букв сетевых дисков, и невозможно назначить буквы дисков для контекста с повышенными правами с помощью оболочки проводника или сценариев входа. Однако, создав ярлык для пакетного файла, используя приведенный выше ----


 / ----
 

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

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

 %~dp0
 

Пути UNC по умолчанию отключены по умолчанию, так как они приводили к сбою старых программ. [12]

Значение реестра Dword DisableUNCCheck по адресу HKEY_CURRENT_USER\Software\Microsoft\Command Processor [12] позволяет каталогу по умолчанию быть UNC. Команда CD откажется от изменения, но поместит путь UNC в каталог по умолчанию в ярлыке Cmd или с помощью команды «Пуск».----


 (----
 

 общий ресурс для администраторов).
 

Набор символов

Пакетные файлы используют набор символов OEM, определенный компьютером, т.е. Кодовая страница 437. Их части, отличные от ASCII, несовместимы с наборами символов Unicode или Windows, которые в противном случае используются в Windows, поэтому необходимо соблюдать осторожность. [13] Имена файлов, отличные от английского, работают, только если они вводятся через редактор, совместимый с набором символов DOS. Имена файлов с символами за пределами этого набора не работают в пакетных файлах.

Чтобы получить вывод в Unicode в файловые конвейеры из внутренней команды, такой как dir , можно использовать команду cmd /U . Например, cmd /U /C dir > files.txt создает файл, содержащий список каталогов с правильными символами Windows в кодировке UTF-16LE.

Пакетные вирусы и вредоносное ПО

Как и любой другой язык программирования, пакетные файлы могут использоваться злонамеренно. Простые трояны и форк-бомбы легко создаются, а пакетные файлы могут отравлять DNS, изменяя файл hosts.Возможны пакетные вирусы, которые также могут распространяться через USB-накопители с помощью функции автозапуска Windows. [14]

Следующая команда в пакетном файле удалит все данные в текущем каталоге (папке) - без предварительного запроса подтверждения:

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

 :ВЕРХ
 начать "" %0
 перейти в ТОП
 

Другие языки сценариев Windows

Командная строка.exe командный процессор, который интерпретирует файлы .cmd, поддерживается во всех 32- и 64-разрядных версиях Windows, по крайней мере, до Windows 10 [обновление] . COMMAND.EXE, интерпретирующий файлы .BAT, поддерживался во всех 16- и 32-разрядных версиях как минимум до Windows 10. [nb 3]

Для Windows доступны другие, более поздние и более мощные языки сценариев. . Однако для их использования необходимо установить интерпретатор языка сценариев:

  • KiXtart ( .kix ) — разработан сотрудником Microsoft в 1991 году специально для удовлетворения потребности в командах, полезных в сценарии входа в сеть, при сохранении простого «ощущения» файла .cmd.
  • Windows Script Host ( .vbs , .js и .wsf ) — выпущен Microsoft в 1998 году и состоит из cscript.exe и wscript.exe, запускает сценарии, написанные на VBScript или JScript. Он может запускать их в оконном режиме (с хостом wscript.exe) или в консольном режиме (с файлом cscript.exe-хост). Они были частью Windows начиная с Windows 98.
  • PowerShell ( .ps1 ) — выпущен Microsoft в 2006 году и может работать с Windows XP (SP2/SP3) и более поздними версиями. PowerShell может работать как в интерактивном режиме (из интерфейса командной строки), так и с помощью сохраненных сценариев, и имеет большое сходство с оболочками Unix. [15]
  • Языки сценариев оболочки в стиле Unix можно использовать, если установлено средство обеспечения совместимости с Unix, например Cygwin.
  • Кроссплатформенные инструменты для написания сценариев, включая Perl, Python, Ruby, Rexx, Node.js и PHP доступны для Windows.

Файлы сценариев запускаются, если вводится имя файла без расширения. Существуют правила приоритета, определяющие интерпретацию, скажем, DoThis , если существуют DoThis.com , DoThis.exe , DoThis.bat , DoThis.cmd и т. д.; по умолчанию DoThis.com имеет наивысший приоритет. Этот порядок по умолчанию может быть изменен в более новых операционных системах с помощью устанавливаемой пользователем переменной среды PATHEXT.

См. также

Примечания

  1. ↑ Чтобы убедиться, что COMMAND.COM остается доступным (в каталоге \WINDOWS\SYSTEM32), введите COMMAND.COM в командной строке 32-разрядной версии Windows 7.
  2. ↑ «Если включены расширения команд, команда PUSHD принимает сетевые пути в дополнение к обычной букве диска и пути. Если указан сетевой путь, PUSHD создает временную букву диска, которая указывает на указанный сетевой ресурс, а затем изменяет текущий диск. и каталог, используя вновь определенную букву диска.Временные буквы дисков назначаются от Z: вниз, используя первую найденную неиспользуемую букву диска." -- Помощь для PUSHD в Windows 7
  3. ↑ Доступность CMD.EXE и COMMAND.COM можно подтвердить, вызвав их в любой версии Windows (COMMAND.COM нет в 64-разрядных версиях; вероятно, доступно только в 32-разрядных версиях Windows 8, если они установлены с возможностью поддержки 16 -битные программы).

Ссылки

  1. ↑ «Использование пакетных файлов: сценарии; службы управления». Технет.Microsoft.com. 21 января 2005 г. Проверено 30 ноября 2012 г. .
  2. ↑ «Используйте свои навыки написания сценариев Unix, чтобы написать пакетный файл».Мир ИТ. Проверено 13 июня 2018 г. .
  3. ↑ «Разница между bat и cmd | WWoIT — Мир информационных технологий Уэйна». 2012-11-15. Проверено 30 ноября 2012 г. .
  4. ↑ "расширение файла btm :: все о типе файла .btm". Cryer.co.uk. Проверено 30 ноября 2012 г. .
  5. Caldera DR-DOS 7.02 Руководство пользователя , Caldera, Inc., 1998, получено 10 августа 2013 г.
  6. Онлайн-справка 4DOS 8.00 . 27 февраля 2002 г.
  7. 7.0 7.1 ".NET Core Runtime: System.Diagnostics.Process.Unix». Проверено 11 февраля 2020 г. «Две последовательные двойные кавычки внутри области inQuotes должны привести к буквальной двойной кавычке (парсер остается в области inQuotes). Это поведение не является частью спецификации code:ParseArgumentsIntoList, но совместимо с CRT и .NET Framework».
  8. 8.0 8.1 Дели, Дэвид. «Как анализируются параметры командной строки».
  9. ↑ «Документация по дочерним процессам, раздел «Командная строка Windows», NodeJS PR № 29576» (на английском языке).Проверено 11 февраля 2020 г.
  10. ↑ «Как сделать отсрочку», ericphelps.com
  11. ↑ Утилиты для DOS, ссылки на WAIT.ZIP (архив WAIT.COM) и другие программы
  12. 12.0 12.1 https://support.microsoft.com/en-us/kb/156276
  13. ↑ «Следите за кодовой страницей». Майкрософт.
  14. ↑ http://www.explorehacking.com/2011/01/batch-files-art-of-creating-viruses.html
  15. ↑ «Windows PowerShell — Unix приходит в Windows».Geekswithblogs.net. Проверено 30 ноября 2012 г. .

Внешние ссылки

Запуск пакетных файлов (команды DOS) из Visual Studio

Интегрированная среда разработки Microsoft Visual Studio не выполняет команды DOS, но вы можете изменить этот факт с помощью пакетного файла. Когда IBM представила ПК, пакетные файлы и оригинальный язык программирования BASIC были одними из немногих способов написания программ. Пользователи стали экспертами в программировании команд DOS.

О пакетных файлах

Пакетные файлы могут называться сценариями или макросами в другом контексте.Это просто текстовые файлы, заполненные командами DOS. Например:

  @ЭХО выкл.
ЭХО Здравствуйте, о Visual Basic!
@ЭХО на 
 
  • "@" подавляет отображение текущего оператора на консоли. Так вот, команда "ЭХО выкл" не отображается.
  • "ECHO off" и "ECHO on" переключают отображение утверждений. Итак, после "ECHO off" выписки не отображаются.
  • "ECHO Привет, о Visual Basic!" отображает текст «Здравствуйте, о Visual Basic!»
  • "@ECHO on" снова включает функцию ECHO, чтобы отображалось все, что следует далее.

Все это было сделано только для того, чтобы убедиться, что единственное, что вы действительно видите в окне консоли, — это сообщение.

Как выполнить пакетный файл в Visual Studio

Ключом к выполнению пакетного файла непосредственно в Visual Studio является добавление его с помощью выбора «Внешние инструменты» в меню «Инструменты». Для этого вы:

  1. Создайте простую пакетную программу, которая выполняет другие пакетные программы.
  2. Ссылка на эту программу с помощью выбора внешних инструментов в Visual Studio.

Для полноты добавьте ссылку на Блокнот в меню Инструменты.

Пакетная программа, которая выполняет другие пакетные программы

Вот пакетная программа, которая будет выполнять другие пакетные программы:

  @cmd/с %1
@Пауза
 
 

Параметр /c выполняет команду, указанную строкой, а затем завершает работу. %1 принимает строку, которую попытается выполнить программа cmd.exe. Если бы команды паузы не было, окно командной строки закрывалось бы до того, как вы могли бы увидеть результат.Команда паузы выдает строку «нажмите любую клавишу, чтобы продолжить».

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

  /?
 
 

Сохраните этот файл под любым именем с типом файла «.bat». Вы можете сохранить его в любом месте, но подходящим местом будет каталог Visual Studio в Documents.

Добавить элемент во внешние инструменты

Последним шагом является добавление элемента во внешние инструменты в Visual Studio.

--------
Нажмите здесь, чтобы открыть иллюстрацию
--------

Если вы просто нажмете кнопку Добавить , вы получите полное диалоговое окно, позволяющее указать все возможные детали для внешнего инструмента в Visual Studio.

--------
Нажмите здесь, чтобы открыть иллюстрацию
--------

В этом случае введите полный путь, включая имя, которое вы использовали при сохранении пакетного файла ранее, в текстовом поле «Команда».Например:

  C:\Пользователи\Милован\Документы\Visual Studio 2010\RunBat.bat
 
 

Вы можете ввести любое имя в текстовое поле Название. На этом этапе ваша новая команда выполнения пакетного файла готова. Для полноты вы также можете добавить файл RunBat.bat во внешние инструменты другим способом, как показано ниже:

--------
Нажмите здесь, чтобы открыть иллюстрацию
--------

Вместо того, чтобы сделать этот файл редактором по умолчанию во внешних инструментах, что приведет к тому, что Visual Studio будет использовать RunBat.bat для файлов, не являющихся пакетными, запустите пакетный файл, выбрав «Открыть с помощью...» в контекстном меню.

--------
Нажмите здесь, чтобы открыть иллюстрацию
--------

Поскольку пакетный файл — это просто текстовый файл с типом .bat (также работает .cmd), вы можете подумать, что можете использовать шаблон текстового файла в Visual Studio, чтобы добавить его в свой проект. Вы не можете. Как оказалось, текстовый файл Visual Studio не является текстовым файлом. Чтобы продемонстрировать это, щелкните правой кнопкой мыши проект и используйте « Добавить > Новый элемент»... , чтобы добавить в проект текстовый файл. Вы должны изменить расширение, чтобы оно заканчивалось на .bat. Введите простую команду DOS, Dir (отобразите содержимое каталога) и нажмите OK , чтобы добавить его в свой проект. Если вы затем попытаетесь выполнить эту пакетную команду, вы получите эту ошибку:

  'n++Dir' не распознается как внутренняя или внешняя команда,
работающая программа или командный файл.
 
 

Это происходит потому, что редактор исходного кода по умолчанию в Visual Studio добавляет информацию заголовка в начало каждого файла.Вам нужен редактор, например Блокнот, которого нет. Решение здесь состоит в том, чтобы добавить Блокнот во внешние инструменты. Используйте Блокнот для создания пакетного файла. После сохранения пакетного файла его все равно нужно добавить в проект как существующий элемент.

windows - Как заснуть в батнике?

Отказ от ответственности : это не «идеальное» решение, так что не утруждайте себя бить меня по голове этим, как это делается с теми, кто рекомендует ping ...

Если возможно, обязательно используйте timeout .Но, как отмечено в комментариях, это не всегда вариант (например, в неинтерактивном режиме). После этого соглашусь, что ping "кладж" пожалуй следующий лучший вариант, так как он очень простой. Тем не менее, я предлагаю другой вариант... вставить какой-нибудь VB Script .

Основа этого решения имеет множество других применений. Часто VBS может делать то, что не может пакетная обработка, или, по крайней мере, делать это значительно проще. Используя технику, показанную здесь, вы можете смешивать их (не «бесшовно», а «функционально»)...).

Вот одна строка, чтобы создать временный скрипт, выполнить его, а затем удалить. Скрипт делает сон за вас (в этом примере 3 секунды).

  echo WScript.Sleep 3000 > %temp%\sleep.vbs и cscript %temp%\sleep.vbs %sleepMs% //B и del %temp%\sleep.vbs
  

Вот в принципе то же самое, только написанное немного иначе:

  установить sleepMs=3000 и установить sleepVbs=%temp%\sleep.vbs & echo WScript.Sleep WScript.Arguments(0) > %sleepVbs% & cscript %sleepVbs% %sleepMs% //B & del %sleepVbs%
  

И наконец, как и ping , CScript сам имеет опцию тайм-аута! Таким образом, если вы вводите бесконечный цикл в сценарий, вы можете позволить интерпретатору принудительно установить продолжительность.Заметьте, это "занятая" операция, которая ест ЦП, и поэтому я не рекомендую ее, когда можно использовать процедуру WScript.Sleep , но привожу ее как концептуальный вариант для полноты картины:

  установить sleepSec=3 и установить sleepVbs=%temp%\sleep.	

Добавить комментарий

Ваш адрес email не будет опубликован.