Cmd call: вызов подподпрограммы или командного файла.

Содержание

вызов подподпрограммы или командного файла.

Команда CALL используется для вызова из пакетного файла другого пакетного файла с возможностью передачи ему входных параметров.

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

CALL [диск:][путь]имя_файла [параметры]

параметры — набор параметров командной строки, необходимых пакетному файлу.

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

CALL :метка аргументы

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

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

CALL C:\SCRIPTS\test.bat — вызвать командный файл C:\SCRIPTS\test.bat

CALL C:\SCRIPTS\test.bat param1 param2 — вызвать командный файл C:\SCRIPTS\test.bat и передать ему параметры param1 и param2

CALL :M1 param1 — вызвать процедуру, внутри текущего пакетного файла, по метке M1 и передать ей параметр param1

Для иллюстрации примеров использования команды CALL можно воспользоваться пакетным файлом, например под именем 1.bat следующего содержания:

CALL 2.bat IP 192.168.1.1
ECHO NEWSET = %NEWSET%

Файл 1.bat будет вызывать файл 2.bat и передавать ему 2 параметра — строки IP и 192.168.1.1. И вызываемый файл, например, выполнит создание новой переменной с именем NEWSET вида «IP = 192.168.1.1» Для этого в файле 2.bat используется команда SET:

SET NEWSET=%1 = %2

После выполнения файла 2.bat будет выполнен возврат в файл 1.bat и команда ECHO выведет на экран значение переменной NEWSET, сформированное вызываемым командным файлом.

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

Rezult:

REM вызов подпрограммы для суммирования чисел 100 и 2
call :M1 100 2
REM Вывод результата
echo Результат = %Rezult%
pause
exit

:M1
SET /A Rezult=%1+%2
exit /b

В примере используется команда exit с параметром /b внутри вызываемой процедуры. Если данный ключ не указать, то вместо выхода из вызываемой процедуры будет выполнен выход из командного файла (завершение CMD.EXE)

вызывает | Microsoft Docs

  • Чтение занимает 2 мин

В этой статье

Вызывает одну пакетную программу из другой без остановки родительской пакетной программы. Команда Call принимает метки в качестве целевого объекта вызова

Примечание

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

Синтаксис

call [drive:][path]<filename> [<batchparameters>] [:<label> [<arguments>]]

Параметры

ПараметрОписание
[<drive>:][<path>]<filename>Указывает расположение и имя пакетной программы, которую необходимо вызвать. <filename>Параметр является обязательным и должен иметь расширение .bat или. cmd.
<batchparameters>Указывает все данные командной строки, необходимые для пакетной программы.
:<label>Указывает метку, к которой должен перейти элемент управления программой пакетной службы.
<arguments>Указывает сведения командной строки, передаваемые в новый экземпляр программы пакетной службы, начиная с :<label> .
/?Отображение справки в командной строке.

Параметры пакета

Ссылки на аргумент скрипта пакетной службы (%0, %1,…) перечислены в следующих таблицах.

Использование значения % * в пакетном скрипте означает все аргументы (например, %1, %2, %3…).

Можно использовать следующие необязательные синтаксисы в качестве подстановок для пакетных параметров (% n):

Параметр BatchОписание
% ~ 1Развертывает
%1
и удаляет окружающие кавычки.
% ~ F1Расширение %1 до полного пути.
% ~ D1Расширение %1 до буквы диска.
% ~ P1Развертывает %1 только для пути.
% ~ N1Расширение %1 только на имя файла.
% ~ x1Развертывает %1 только для расширения имени файла.
% ~ S1Расширение %1 до полного пути, содержащего только короткие имена.
% ~ a1Развертывает %1 для атрибутов файла.
% ~ T1Увеличивает %1 до даты и времени файла.
% ~ Z1Расширение %1 до размера файла.
% ~ $PATH: 1Выполняет поиск в каталогах, перечисленных в переменной среды PATH, и разворачивает
%1
до полного имени найденного первого каталога. Если имя переменной среды не определено или файл не найден при поиске, то этот модификатор разворачивается до пустой строки.

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

Параметр Batch с модификаторомОписание
% ~ DP1Расширение %1 до буквы диска и пути.
% ~ nx1Развертывает %1 только для имени файла и расширения.
% ~ точка DP $ PATH: 1Выполняет поиск в каталогах, перечисленных в переменной среды PATH для %1, а затем разворачивается на букву диска и путь к первому найденному каталогу.
% ~ ftza1Разворачивает %1 для вывода выходных данных, аналогичных команде dir .

В приведенных выше примерах %1 и Path могут быть заменены другими допустимыми значениями. %~ Синтаксис завершается допустимым номером аргумента. %~ Модификаторы нельзя использовать с % *.

Remarks

  • Использование параметров пакетной службы:

    Пакетные параметры могут содержать любые сведения, которые можно передать в пакетную программу, включая параметры командной строки, имена файлов, параметры пакета %0%9 и переменные (например, % бод%).

  • С помощью <label> параметра:

    Используя вызов с <label> параметром, вы создаете новый контекст файла пакета и передаете управление оператору после указанной метки. При первом обнаружении конца пакетного файла (то есть после перехода к метке) управление возвращается оператору после оператора Call . При втором обнаружении конца пакетного файла пакетный сценарий завершается.

  • Использование каналов и символов перенаправления:

    Не используйте каналы (|) или символы перенаправления ( < или > ) с вызовом.

  • Выполнение рекурсивного вызова

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

  • Работа с расширениями команд

    Если расширения команд включены, вызов принимает <label> в качестве цели вызова. Правильный синтаксис: call :<label> <arguments>

Примеры

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

call checknew

Если родительская пакетная программа принимает два параметра пакета и требуется передать эти параметры в checknew.bat, введите следующую команду в родительской пакетной программе:

call checknew %1 %2

Дополнительные ссылки

Командная строка — команда Call

Команда используется для вызова конкретного пакетного файла непосредственно из другого. В процессе, исполнение первого приложения не завершается. Прием меток производится, как объекта вызова. Если осуществить ввод в командную строку, команда не станет выполняться. Требуется прописывать её в сценарии, но есть  другой вариант – пакетном файле.

Синтаксис команды

call [[диск_на_компьютере:][путь_до_файла] название_файла [пакетные_данные]] [:метка [параметры]]

Расшифровка составляющих

[диск_на_компьютере:][путь_до_файла] название_файла

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

пакетные_данные

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

:метка

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

параметры

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

Особенности команды Call

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

Эквивалентно команде cmd ‘call’? — CodeRoad



При создании cmd / пакетного сценария (например, parent.bat) можно использовать команду ‘call’ для вызова другого batch file (например, child.bat ). инструкции, найденные в child.bat , будут выполняться как часть parent.bat . Любые переменные, которые parent.bat будет использовать, child.bat может использовать и наоборот.

Можно ли пройти через переменные из parent.ps1 в child.ps1 и наоборот в PowerShell?

powershell
Поделиться Источник MikePro     04 мая 2017 в 10:53

1 ответ


  • Что эквивалентно команде Linux ‘free’ на FreeBSD v8.1

    Что эквивалентно команде Linux ‘free’ на FreeBSD v8.1? Я вызываю ‘free’ из своего приложения и сообщаю о результатах в файле журнала моего приложения. Какой будет замена при переносе на FreeBSD v8.1? Вот пример запуска ‘free’ на Linux: [centos4x32 ~] free total used free shared buffers cached Mem:…

  • Как использовать функцию Windows CMD pipe ( | ) с параметром команды CALL :Label?

    У меня есть неприятная проблема, когда я хочу использовать функцию pipe( | ) с параметром CMD shell CALL :Label окна. У меня есть очень маленький пример (ниже): call-test .cmd и пример вывода. Суть проблемы заключалась в том, чтобы передать вывод скрипта CMD в другую программу, например в утилиту…



1

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

Parent.ps1

$MyVariable = "Foo"
Write-Host "PARENT BEFORE: MyVariable: $MyVariable"
& "$PSScriptRoot\Child.ps1"
Write-Host "PARENT AFTER: MyVariable: $MyVariable"

Child.ps1

Write-Host "CHILD BEFORE: MyVariable: $MyVariable"
$MyVariable = "Bar"
Write-Host "CHILD AFTER: MyVariable: $MyVariable"

Выход:

PS > .\Parent.ps1
PARENT BEFORE: MyVariable: Foo
CHILD BEFORE: MyVariable: Foo
CHILD AFTER: MyVariable: Bar
PARENT AFTER: MyVariable: Foo

Если вы используете dot-sourcing ( . ) для вызова дочернего сценария, он будет выполняться в области родительского сценария, что сделает изменения переменных в дочернем сценарии видимыми для родителя. Экс:

Parent.ps1

$MyVariable = "Foo"
Write-Host "PARENT BEFORE: MyVariable: $MyVariable"
. "$PSScriptRoot\Child.ps1"
Write-Host "PARENT AFTER: MyVariable: $MyVariable"

Выход:

PARENT BEFORE: MyVariable: Foo
CHILD BEFORE: MyVariable: Foo
CHILD AFTER: MyVariable: Bar
PARENT AFTER: MyVariable: Bar

Поделиться Frode F.     04 мая 2017 в 11:11


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


bash regex эквивалент команды в скрипте windows cmd

Что было бы эквивалентно этой команде bash: [[ $(uname) =~ NT-6.3 ]] && set_win81 В сценарии windows cmd? Я прыгал, чтобы использовать что-то вроде: if (ver | findstr /C:Microsoft Windows…


Одинарная кавычка («) в строке с C# в команде cmd

Я пытаюсь выполнить команду в cmd, но у меня проблема с пробелом в команде. Я знаю, что эта проблема решается с помощью кавычек вокруг части, содержащей пространство. Я попробую это: string…


ASP.NET эквивалентно этой команде cURL

Я работаю с Twilio API, и он дает примеры в PHP и Ruby. Я работаю над сайтом для отправки текстовых сообщений через API, который закодирован в ASP.NET MVC 3, и, используя мои ограниченные знания об…


Что эквивалентно команде Linux ‘free’ на FreeBSD v8.1

Что эквивалентно команде Linux ‘free’ на FreeBSD v8.1? Я вызываю ‘free’ из своего приложения и сообщаю о результатах в файле журнала моего приложения. Какой будет замена при переносе на FreeBSD…


Как использовать функцию Windows CMD pipe ( | ) с параметром команды CALL :Label?

У меня есть неприятная проблема, когда я хочу использовать функцию pipe( | ) с параметром CMD shell CALL :Label окна. У меня есть очень маленький пример (ниже): call-test .cmd и пример вывода. Суть…


Как я могу использовать переменную cmd в команде osql?

Я пытаюсь запустить команду osql из cmd shell. Мне нужно использовать переменную уровня cmd в моей команде osql. Например, у меня есть переменная %mydate%,, и я хочу передать ее в качестве значения…


Получение исключения при выполнении popen по команде

Я сталкиваюсь со следующей ошибкой, когда запускаю Popen по команде, как показано ниже,если я попробую команду вручную, она работает, не уверен, что здесь не так?может ли кто-нибудь дать указания на…


Как установить AFFINITY с CALL в пакетном режиме

Я использую команду start /AFFINITY 3 standalone.bat для запуска jboss 7.1.1 из командной строки. Теперь я хочу создать службу windows, чтобы запустить jboss с AFFINITY, так что же эквивалентно этой…


Доступ к самой последней команде cmd из Visual Basic

Есть ли какой-нибудь способ получить доступ к самой последней команде cmd, которая была запущена из Visual Basic? Я пытаюсь создать команду cmd, которая разрешает IP-адреса веб-сайтов, и я пытаюсь…


Может ли любой случай использования call/cc be переписать эквивалентно, не используя его?

Может ли любой случай использования call/cc быть переписан эквивалентно без его использования? Например В (g (call/cc f)) , является ли целью f оценить значение некоторого expression , чтобы g можно…

Справочная служба CMD

Сотрудники Справочно-информационной службы осуществляют комплексное информационное и коммуникационное обслуживание пациентов:

  • предоставляют сведения о работе медицинских офисов;
  • отвечают на вопросы о лабораторных услугах;
  • сообщают информацию о результатах исследований;
  • обеспечивают коммуникации с сотрудниками других подразделений CMD.

Информация о работе

Телефон (многоканальный): 8 (495) 788-00-01, 8 (495) 120-13-12, 8 (800) 707-788-1

E-mail: [email protected]

Режим работы: Понедельник — Пятница Суббота Вокресенье
7.30 — 20.00 7.30 — 20.00 7.30 — 20.00

Заказать обратный звонок

Выберите тему звонка

Не выбрана Получение результатов анализов Уточнить график работы офиса Уточнить сроки выполнения, правила подготовки и стоимость услуги Задать вопрос врачу-консультанту Заказать выезд на дом Уточнить информацию по исследованию на COVID-19 Другая тема консультации

Ваш вопрос решен? Если нет, заполните, пожалуйста, поля ниже, и мы свяжемся с Вами в течение рабочего дня справочно-информационной службы согласно графику работы.

Комментарий

Даю согласие на обработку персональных данных

Ваша заявка № принята!

Мы свяжемся с Вами в течение рабочего дня (с 8:00 до 19:00)

Вызов

— Windows CMD — SS64.com Вызов

— Windows CMD — SS64.com

Вызов одной пакетной программы из другой или подпрограммы.

 Синтаксис
      ВЫЗОВ [ диск :] [ путь ]  имя файла  [ параметры ]

      ЗВОНИТЕ:  метка  [ параметров ]

      ЗВОНИТЕ  internal_cmd 

Ключ:
   pathname Пакетная программа для запуска.

   параметры Любые аргументы командной строки.:  label  Перейти к метке в текущем пакетном скрипте.

     internal_cmd  Запустить внутреннюю команду, сначала раскрывая все переменные в аргументе. 

Справка Microsoft по команде CALL гласит: « Вызывает одну пакетную программу из другой, не останавливая родительскую пакетную программу », чтобы расширить это, это правда, что родительский элемент не останавливается, но он делает ПАУЗУ, пока выполняется второй сценарий. .

ВЫЗВАТЬ второй командный файл

Команда CALL запускает новый контекст командного файла вместе с любыми указанными параметрами.Когда будет достигнут конец второго командного файла (или если используется EXIT), управление вернется сразу после первоначального оператора CALL.

Аргументы можно передавать как простую строку или с помощью переменной:

ВЫЗОВ MyScript.cmd «1234»
ВЫЗОВ OtherScript.cmd% _MyVariable%

Пример

:: ———- запустить main.cmd ————
@ Эхо выключено
CALL function.cmd 10 первый
Echo% _description% -% _number%

Функция CALL.cmd 15 секунд
Эхо% _description% -% _number%
:: ———- конец main.cmd ————-

:: ———- start function.cmd — ——
@ Эхо выключено
:: Добавить 25 к% 1
SET / a _number =% 1 + 25
:: Магазин% 2
НАБОР _description = [% 2]
:: ———- end function.cmd ————

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

Если вы выполните второй командный файл без с помощью CALL, вы можете столкнуться с некоторыми ошибками: если оба командных файла содержат метку с тем же именем, и вы ранее использовали CALL для перехода к этой метке в первом скрипте, вы будете find выполнение второго скрипта начинается с той же метки. Даже если вторая метка не существует, это все равно вызовет ошибку «не удается найти метку партии» . Этой ошибки можно избежать, всегда используя CALL.

ВЫЗОВ подпрограммы (: label)

Команда CALL передаст управление оператору после указанной метки вместе с любыми указанными параметрами.
Для выхода из подпрограммы укажите GOTO: eof это передаст управление концу текущей подпрограммы.

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

: myShinyLabel

Если помещено в квадратные скобки, за меткой должна следовать по крайней мере одна допустимая команда, даже просто команда ECHO или REM.
Максимальная длина метки — 127 символов без пробелов.

Это основа функции пакетного файла.

ЗВОНИТЕ: sub_display 123
ЗВОНИТЕ: sub_display 456
ECHO Все готово
GOTO: eof

: sub_display
ECHO Результат% 1
EXIT / B

В конце подпрограммы EXIT / B вернется в положение, в котором вы использовали CALL
. (GOTO: для этого также можно использовать eof)

Позвонить и, при желании, продолжить

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

ВЫЗОВ SecondScript.cmd || goto: eof

Это будет goto: eof, если SecondScript.cmd возвращает уровень ошибки больше нуля, вы можете принудительно установить уровень ошибки, используя Exit / b 1

Прохождение по ссылке

Помимо передачи числовых или строковых значений в командной строке, также можно передать имя переменной, а затем использовать переменную для передачи данных между сценариями или подпрограммами. Передача по ссылке — это немного более сложный метод, но он может быть необходим, если строка содержит символы, являющиеся разделителями CMD или кавычками, иначе передача строки типа Start & middle: «и & End может что-то сломать.

 @ Эхо выключено
    Эхо:
    Установить "var1 = Red Pippin"
    Установить "var2 = St Edmunds Pippin"
    Установить "var3 = Egremont Russet"

    Эхо: до: var1 =% var1% var2 =% var2% var3 =% var3%
    вызов : myGetFunc  var1 var2 var3
    Эхо: после: var1 =% var1% var2 =% var2% var3 =% var3%

    Echo: & pause & goto: eof

    :: ----------------------------------------------
    :: - Функциональный раздел начинается ниже
    :: ----------------------------------------------

     : myGetFunc  - передача переменной по ссылке
    Установите "% ~ 1 = return64"
    Установите "% ~ 3 = return65"
    ВЫХОД / B 

Ошибочное поведение при использовании CALL

Перенаправление через канал ‘|’ не всегда работает должным образом.ing »каретки будут удвоены.

Расширенное использование: ВЫЗОВ внутренних команд

 CALL  command  [ command_parameters ] 

CALL также может использоваться для запуска любой внутренней команды (SET, ECHO и т. Д.), За исключением FOR и IF.
CALL расширит все переменные, переданные в той же строке. CALL REM работает только частично: операторы перенаправления, операторы условного выполнения и скобки не будут отмечены.

Это недокументированное поведение, на самом деле всякий раз, когда CALL запускается без префикса:, он всегда будет искать на диске командный файл / исполняемый файл с именем command перед запуском внутренней команды. Эффект от этого дополнительного доступа к диску состоит в том, что CALL SET значительно медленнее, чем CALL, поэтому следует избегать его использования в циклах или с большим количеством переменных.

Пример

 @ Эхо выключено
 УСТАНОВИТЬ
 установить _server = frodo
 установить _var = _server
   НАБОР ВЫЗОВОВ  _result =  %% % _var%  %% 
 эхо% _result% 

В строке, выделенной полужирным шрифтом, символы ‘%’ утроены, CALL расширит это до: SET _result = frodo

Каждый CALL выполняет одну замену переменных.(Вы также можете сделать ЗВОНИТЬ ЗВОНОК … для нескольких замен)

Во многих случаях DelayedExpansion является лучшим / более быстрым методом:

 @ Эхо выключено
 Setlocal EnableDelayedExpansion
 Установить _server = frodo
 Установить _var = _server
 Установите _result =! % _var% !
 Эхо% _result% 

Уровни ошибок

Если вы запустите CALL SET, это сбросит ERRORLEVEL = 0, даже если обычно SET … не сможет сбросить ERRORLEVEL
Если вы ВЫЗЫВАЕТЕ подпрограмму, УРОВЕНЬ ОШИБКИ останется без изменений
Если вы ВЫЗЫВАЕТЕ подпрограмму с несуществующей меткой, ERRORLEVEL будет установлен на 1,
(вызов) установит ERRORLEVEL на 0.
(вызов) установит УРОВЕНЬ ОШИБКИ на 1.

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

CALL — это внутренняя команда (внутренне она тесно связана с GOTO).
Если расширения команд отключены, команда CALL не будет принимать пакетные метки.

«Моя мать никогда не видела иронии в том, что называла меня сукиным сыном» ~ Джек Николсон

Связанные команды:

Как: Функции — Как упаковать блоки кода.
CMD — может использоваться для вызова следующего пакета и ВСЕГДА возвращать, даже если возникают ошибки.
GOTO — переход к метке или GOTO: eof
START — запуск отдельного окна для запуска указанной программы или команды.
Эквивалентная команда bash (Linux):. (источник) — запускать командный сценарий в текущей оболочке, встроенный — запускать встроенную оболочку.


Авторские права © 1999-2021 SS64.com
Какие-то права защищены

cmd — «Позвонить» или «Не звонить» командный файл?

Хорошо, я даже не особо задумывался о том, что если вы вызываете пакет (независимо от ‘типа’, т.е.е. ‘.bat’ или ‘.cmd’), что он не вернется, если вы не используете call.

Я сам использовал вызов, хотя и по другой причине, и на самом деле очень удивлен, что никто не поднял трубку. Может я это пропустил. МОЖЕТ БЫТЬ Я ЕДИНСТВЕННЫЙ В МИРЕ, КТО ЗНАЕТ !! : O

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

Если вы используете call, вы можете использовать операторы бинарной логики, чтобы решить, как действовать дальше, на основе результата ERRORLEVEL. На самом деле, я всегда был изумлен тем, как && и || существовал в DOS и НЕ МОЖЕТ использоваться таким образом.Ну вот почему.

Самый простой способ проверить это — создать return.cmd с помощью блокнота или из командной строки, например:

  c: \> введите con> return.cmd
  

Теперь вы заметите, что курсор опускается на следующую строку и зависает. Введите:

  @ выход / B% 1
  

Затем нажмите ENTER , а затем CTRL Z , и этот файл будет создан. Хороший! Теперь вы можете попробовать следующие два примера:

звонок обратный.cmd 0 && echo Ура! Полный успех! (Или прикрыть ...)

вызов return.cmd 123 || эхо Ой! Что-то произошло. Вы можете отметить ERRORLEVEL, если хотите получить как можно меньшее количество дополнительной информации.

И что? Что ж, запустите их снова, поменяв местами 0 и 123, и вы увидите, что сообщения НЕ печатаются.

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

  обратный звонок.!
     ) || @ (
         echo Пакетная обработка завершена, но возвращено значение сортировки "ложное".
         эхо вызова Возвращенное конкретное значение было:% ERRORLEVEL%
     )
  

(Обратите внимание на ‘call’ в разделе || перед вторым ‘echo’. Я считаю, что именно так люди обходились без отложенного расширения в тот же день. Если у вас ДЕЙСТВИТЕЛЬНО включено отложенное расширение (через. Setlocal EnableDelayedExpansion внутри пакета ИЛИ запустите командную строку с cmd / v: на , тогда вы можете просто сделать! ERRORLEVEL !.)

… Здесь я должен извиниться и сказать, что если у вас есть , если в вашем прошлом травма ERRORLEVEL , вам следует прекратить читать. Я понял. Поверьте мне. Я думал о том, чтобы заплатить кому-нибудь на fiverr, чтобы он удаленно набрал это для меня, но для полноты картины я просто возьму один для команды и упомяну, что вы также можете сделать следующее, чтобы проверить уровень ошибок:

  если ERRORLEVEL 123 @echo QUICK! МАТЕРИ, ЗАКРЫВАЙТЕ ГЛАЗА СВОИМ ДЕТЯМ! ПАЛЬЦЫ ОТКРЫВАЮТСЯ! : '(
  

Если вы никогда не печатали это раньше, тогда ХОРОШО! Вы проживете дольше, не читая, почему именно вы не получаете ожидаемых результатов.Вы ищете слово «жестокий», а не «причудливый».


Однако важная часть, которую я действительно хочу донести, заключается в том, что если вы попробуете это и НЕ будете использовать «call», он ВСЕГДА выполнит ветвь «true». Попробуйте сами!

Если я чего-то упускаю или у вас есть лучший способ сделать это, дайте мне знать. Я люблю учить такие вещи!


Дополнительная информация, которую я упомянул:

Я уже довольно давно знаю, что вы можете поместить перенаправления ПЕРЕД командами, например:

 > нуль эхо.Это не будет отображаться!
  

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

  эхо A B> file.txt C
  

И был ДЕЙСТВИТЕЛЬНО удивлен, обнаружив file.txt , который состоял из «A B C». Похоже, вы можете разместить их ВЕЗДЕ, даже внутри команды. Я никогда не видел, чтобы кто-то делал это и не упоминал об этом, но я видел, как люди упоминали, что вы можете префикс строки с ними.

Может быть, это ошибка исключительно в Windows 10 или что-то в этом роде.Если у вас есть другая версия, и вы хотите попробовать ее, дайте мне знать, что мне будет интересно узнать, что вы узнаете.

Оставайся занудой!

Строка

— Почему CALL SET по-разному работает в CMD Windows и в файле .CMD?

Я пытаюсь программно использовать версии Windows CMD SET для обработки строк. Две версии SET : …

  SET New_String =% String: Old_Text = New_Text%
  

В переменной String замените Old_Text на New_Text и верните результат в переменной New_String .

  SET New_String =% String: ~ Number_Of_Chars_To_Skip, Number_Of_Chars_To_Keep%
  

В переменной String извлечь Number_Of_Chars_To_Keep после пропуска Number_Of_Chars_To_Skip и вернуть результат в переменной New_String

Old_Text, New_Text, Number_Of_Chars_To_Skip, Number_Of_Chars_To_Keep должны быть литералами, а не переменными. Итак, типичное использование будет таким …

  SET New_String =% String: abcd = fghi%
SET New_String =% String: ~ 2,4%
  

Такое использование не работает…

  SET New_String =% String:% Old_Text% =% New_Text %%
SET New_String =% String: ~% Skip_Count%,% Keep_Count %%
  

Чтобы выполнить два вышеуказанных SET s, вам необходимо набрать CALL SET , например …

  НАБОР ВЫЗОВОВ New_String = %% String:% Old_Text% =% New_Text %%%
CALL SET New_String = %% String: ~% Skip_Count%,% Keep_Count %%%
  

Итак, у меня есть следующий фрагмент тестового кода …

  SET "Chars =" & SET "String = 0123456789" & SET "Skip = 1" & SET "Keep = 3"
CALL SET Chars = %% String: ~% Skip%,% Keep %%%
ECHO Chars = "% Chars%" (ожидается "123")
  

Из файла CMD это работает правильно. CALL был расширен до SET Chars =% string: ~ 1,3% и вернул ожидаемый результат 123. Но, и большое, но это так, из окна CMD (с теми же переменными) точное тот же CALL SET возвращает это …

 % 0123456789Пропустить%, 3 %%
  

Почему это не работает в окне CMD? Я исследовал и не нашел никакой информации, объясняющей почему.

MS-DOS и команда вызова командной строки Windows

Обновлено: 21.05.2018 компанией Computer Hope

Команда call позволяет пользователю выполнить командный файл из другого командного файла.

Наличие

Call — это внутренняя команда, доступная в следующих операционных системах Microsoft.

Синтаксис вызова

Windows 2000, Windows XP и более поздние версии синтаксис вызова

Вызывает одну пакетную программу из другой.

CALL [диск:] [путь] имя файла [параметры пакета]

Если включены расширения команд, CALL изменяется следующим образом:

Команда

CALL теперь принимает метки как цель CALL. Синтаксис:

CALL: аргументы метки

Создается новый контекст командного файла с указанными аргументами, и управление передается оператору после указанной метки.Вы должны «выйти» дважды, дважды дойдя до конца файла пакетного сценария. В первый раз, когда вы читаете конец, управление возвращается после оператора CALL. Второй раз выйдет из пакетного сценария. Тип GOTO /? для описания расширения GOTO: EOF, которое позволяет «возвращаться» из пакетного сценария.

Расширение ссылок на аргументы пакетного сценария (% 0,% 1 и т. Д.) Изменяется следующим образом:

% * в пакетном сценарии относится ко всем аргументам (например,% 1% 2% 3% 4% 5…)

Улучшена подстановка параметров партии (% n). Теперь вы можете использовать следующий необязательный синтаксис:

% ~ 1 Раскрывает% 1, удаляя все окружающие кавычки («).
% ~ f1 Заменяет% 1 до полного имени пути.
% ~ d1 Заменяет% 1 только буквой диска.
% ~ 1 стр. Расширяет% 1 только до пути.
% ~ n1 Заменяет% 1 только на имя файла.
% ~ x1 Заменяет% 1 только на расширение файла.
% ~ s1 Расширенный путь содержит только короткие имена.
% ~ A1 Расширяет% 1 до атрибутов файла.
% ~ t1 Расширяет% 1 до даты / времени файла.
% ~ z1 Увеличивает% 1 до размера файла.
% ~ $ ПУТЬ: 1 Выполняет поиск в каталогах, перечисленных в переменной среды PATH, и раскрывает% 1 до полного имени первого найденного каталога.Если имя переменной среды не определено или файл не найден поиском, этот модификатор заменяется пустой строкой.

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

% ~ dp1 Заменяет% 1 только на букву диска и путь.
% ~ nx1 Заменяет% 1 только на имя и расширение файла.
% ~ dp $ ПУТЬ: 1 Выполняет поиск% 1 в каталогах, перечисленных в переменной среды PATH, и выполняет поиск по букве диска и пути первого найденного диска.
% ~ ftza1 Расширяет% 1 до выходной строки, подобной DIR.

В приведенных выше примерах% 1 и PATH могут быть заменены другими допустимыми значениями. Синтаксис% ~ завершается допустимым номером аргумента. Модификаторы% ~ нельзя использовать с параметром% *.

Синтаксис вызова MS-DOS, Windows 95, Windows 98, Windows ME

Вызывает одну пакетную программу из другой.

CALL [диск:] [путь] имя файла [параметры пакета]

Параметры пакета определяют любую информацию командной строки, требуемую программой пакетной обработки.

Примеры звонков

 звонок второй. Летучая мышь 

Выполняет второй пакетный файл .bat из другого пакетного файла.

Пакетные файлы — ЗВОНИТЕ

Пакетные файлы — ЗВОНИТЕ

Оператор CALL был представлен в MS-DOS 3.3

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

Допустим, у вас есть командный файл с именем BATCh2.BAT, который должен выполнить второй командный файл с именем BATCh3.BAT.

Допустим, БАТЧ2.БАТ выглядит так:

 REM Batch2.bat
УСТАНОВИТЬ ABC = 1
ВЫЗОВ BATCh3.BAT% ABC%
ECHO ABC =% ABC%
BATCh3.BAT% ABC%
ECHO ABC =% ABC% 

А БАТЧ3.BAT выглядит так:

 REM Batch3.bat
УСТАНОВИТЬ ABC =% ABC %% 1 

Запуск BATCh2.BAT отобразит что-то вроде этого:

 C: \> batch2.летучая мышь

C: \> REM Batch2.bat

C: \> УСТАНОВИТЬ ABC = 1

C: \> ВЫЗОВ BATCh3.BAT 1

C: \> REM Batch3.bat

C: \> УСТАНОВИТЬ ABC = 11

C: \>
C: \> ECHO ABC = 11
ABC = 11

С: \> БАТЧ3.БАТ 11

C: \> REM Batch3.bat

C: \> УСТАНОВИТЬ ABC = 1111

C: \>
С: \> 

Видите? Второй запуск BATCh3.BAT (без оператора CALL) прерывает «вызывающий» командный файл. Последняя строка BATCh2.CMD ( ECHO ABC =% ABC% ) не выполняется.

До появления CALL единственным способом запустить другой пакетный файл и вернуться к вызывающему пакетному файлу был COMMAND / C

В результате BATCh2.BAT будет выглядеть так:

 REM Batch2.bat
УСТАНОВИТЬ ABC = 1
КОМАНДА / C BATCh3.BAT% ABC%
ECHO ABC =% ABC%
BATCh3.BAT% ABC%
ECHO ABC =% ABC% 

Повторный запуск BATCh2.BAT теперь приведет к примерно такому результату:

 C: \ batch2.летучая мышь

C: \> REM Batch2.bat

C: \> УСТАНОВИТЬ ABC = 1

C: \> КОМАНДА / C BATCh3.BAT 1

C: \> REM Batch3.bat

C: \> УСТАНОВИТЬ ABC = 11

C: \>

C: \> ECHO ABC = 1
ABC = 1

C: \> BATCh3.BAT 1

C: \> REM Batch3.bat

C: \> УСТАНОВИТЬ ABC = 11

C: \>
С: \> 

Обратите внимание на части, отмеченные красным, это показывает, что, хотя BATCh3.BAT изменил переменную ABC, это изменение не было возвращено в вызывающий командный файл.Это потому, что только что запущенный COMMAND.COM имеет свою собственную отдельную среду, которая сбрасывается при закрытии COMMAND.COM. Недавно запущенный COMMAND.COM действительно, , однако, унаследовал среду вызывающего командного файла, включая переменную ABC.

Удивительно, что нам когда-либо удавалось делать что-либо в пакетном режиме до MS-DOS 3.3

В Windows NT 4 / Windows 2000 CALL не только вызывает другие командные файлы, но также может вызывать подпрограммы в том же командном файле.
Все, что требуется, — это двоеточие (:) перед именем подпрограммы (на самом деле это обычная метка пакета), как в случае CALL: независимо от или CALL: независимо от значения , и подпрограмма должна заканчиваться на GOTO: EOF или GOTO: EOF .
Этот GOTO: EOF действует как «возврат» на большинстве других языков.

Параметры такие же, как для «внешних» командных файлов:% 1% 2 …% 9,% *.

Пример:

 @ECHO OFF
REM Основная «программа» вызывает подпрограмму один раз для каждого администратора домена:
FOR / F "tokens = *" %% A IN ('NET GROUP "Domain Admins" / DOMAIN ˆ | FIND ""') DO CALL: подпрограмма %% A
GOTO: EOF

: Подпрограмма
REM Отображение идентификатора пользователя и полного имени для указанного администратора домена:
FOR %% B IN (% *) DO (
Имя пользователя ECHO %% B
ЧИСТЫЙ ПОЛЬЗОВАТЕЛЬ %% B / DOMAIN | НАЙТИ «ФИО»
ЭХО.)
GOTO: EOF 

Дополнительные примеры можно найти в CvtUrlNT.bat, FileSys.bat, KillDisc.bat (расширенная версия) и Which.bat.

Последняя загрузка страницы: 2019-02-21, 09:59

BAT-файл: откройте новое окно cmd и выполните в нем команду

Возможно, вы уже нашли свой ответ, потому что это было некоторое время назад, когда вы спрашивали. Но я пытался сделать что-то подобное при кодировании ror. Я хотел запустить «rails server» в новом окне cmd, чтобы мне не нужно было открывать новый cmd, а затем снова искать свой путь.

Я обнаружил, что переключатель K используется следующим образом:

  start cmd / k echo Привет, мир!
  

запускается до того, как «cmd» откроет приложение в новом окне, а «/ K» выполнит «echo Hello, World!» после того, как новый cmd запущен.

Вы также можете использовать переключатель / C для чего-то подобного.

  start cmd / C пауза
  

Это выполнит «паузу», но закроет окно, когда команда будет выполнена. В этом случае после того, как вы нажали кнопку.Я нашел это полезным для «сервера рельсов», тогда, когда я выключаю свой сервер разработки, мне не нужно после этого закрывать окно.

Используйте в командном файле следующее:

  start cmd.exe / k "more-batch-commands-here"
  

или

  start cmd.exe / c "more-batch-commands-here"
  

/ c Выполняет команду указывается строкой, а затем завершается
/ k Выполняет команда, указанная строкой, но остается

Проконсультируйтесь с cmd.Документация exe с использованием cmd /? для получения более подробной информации.

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

Примеры:

Запустите программу и передайте параметр имени файла:
CMD / c write.exe c: \ docs \ sample.txt

Запустите программу и передайте длинное имя файла:
CMD / c write.exe "c: \ sample documents \ sample.txt"

Пробелы в пути к программе:
CMD / c "" c: \ Program Files \ Microsoft Office \ Office \ Winword.exe ""

Пробелы в пути к программе + параметры:
CMD / c "" c: \ Program Files \ demo.cmd "" Parameter1 Param2
CMD / k "" c: \ batch files \ demo.cmd "" Параметр 1 с пробел "" Параметр2 с пробелом ""

Запустите demo1 и demo2:
CMD / c "" c: \ Program Files \ demo1.cmd "&" c: \ Program Files \ demo2.cmd ""

Источник: http://ss64.com/nt/cmd.html

Это не очень просто.

Наилучший подход состоит в том, чтобы часть вашего скрипта, которую вы хотите запустить в «новом окне», находилась в отдельном файле .bat. Это может быть непрактично, если, например, вам нужно много состояний из остальной части вашего скрипта (переменных и т. д.). Один из вариантов — передать любые необходимые вам значения (например, каталог для работы) в командный файл:

  запустить cmd.exe stuff.bat% this_dir%
  

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

  set foo = Hello, World
установить list_me =% userprofile%

установить tmpdir = c: \ windows \ temp
установить tmp =% tmpdir% \ tmp.фу

del / q / f "% tmp%"

echo.echo% foo% >> "% tmp%"
echo.dir "% list_me%" >>> "% tmp"

запустить cmd.exe "% tmp%"

del / q / f "% tmp%"
  

Очевидно, это тривиальный пример.

Cantel Medical Corp (CMD) Стенограмма звонка о доходах за 4 квартал 2020 года

Источник изображения: Пестрый дурак.

Cantel Medical Corp (NYSE: CMD)
Телефонный звонок за 4 квартал 2020 г.
9 марта 2021 г., 8:30 утра по восточному времени

Содержание:

  • Подготовленные примечания
  • Вопросы и ответы
  • Обзвон участников

Подготовлено примечаний:

Оператор

Доброе утро, дамы и господа, и добро пожаловать на телеконференцию Cantel за второй квартал 2021 года.На данный момент все участники переведены в режим только для прослушивания, и после презентации будет предоставлена ​​возможность для вопросов и комментариев. Теперь я с удовольствием передаю слово вашему хозяину, Райану Ладе. Сэр, вам слово.

Райан Лада Вице-президент по связям с инвесторами

Спасибо и доброе утро всем. На сегодняшней телеконференции у нас есть Чак Дайкер, председатель совета директоров; Джордж Фотиадес, генеральный директор; Питер Клиффорд, президент и главный операционный директор; Сет Йеллин, исполнительный вице-президент и директор по развитию; Шон Блейкман, старший вице-президент и главный финансовый директор; и Брайан Капоне, старший вице-президент, корпоративный контролер и главный бухгалтер.

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

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

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

Компания также будет ссылаться на сегодняшний призыв к финансовым показателям не по GAAP.Сверка этих финансовых показателей с наиболее сопоставимыми финансовыми показателями по GAAP представлена ​​в сегодняшнем пресс-релизе о прибылях и убытках. Сказав это, я передам вызов Джорджу.

Джордж Л. Фотиадес Главный исполнительный директор

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

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

В соответствии с моими комментариями в прошлом квартале, мы снова превзошли базовые объемы выборных процедур во всем мире во втором квартале. Основываясь на данных независимых сторонних поставщиков, мы оцениваем, что во втором квартале по 31 января количество эндоскопических процедур в США снизилось на 10–12% по сравнению с прошлым годом. Мы наблюдали объемы процедур в ноябре и декабре, соответствующие предыдущим уровням падения, с большим падением объемов в январе, что было вызвано резким увеличением числа случаев COVID после праздников.

В то же время медицинские продукты с регулярным доходом, категории, которые наиболее близко соответствуют объемам эндоскопических процедур, работали намного лучше, чем процедуры, и мы снизились на 2.8% по сравнению с прошлым годом. Фактически, последовательно, начиная с первого квартала, когда на четыре рабочих дня было меньше, мы наблюдали умеренный рост дневной ставки по этим продуктам.

Точно так же в стоматологии, мы оцениваем, что стоматологические процедуры в США снизились на 10-15% по сравнению с предыдущим годом, в то время как наш стоматологический бизнес за тот же период вырос более чем на 4% в органическом выражении в США. Тенденции объемов процедур указывают на постоянное внедрение на рынке наших решений по профилактике инфекций и демонстрируют силу и ценность критически важных продуктов, которые мы ежедневно предлагаем нашим клиентам.

В этом квартале мы продолжаем добиваться прогресса в реализации наших инициатив по развитию Cantel 2.0. В Европе коммерческое превосходство остается ключевой инициативой, и мы увидели, что европейская команда продемонстрировала выдающиеся результаты. По нашим оценкам, количество процедур эндоскопии в Европе сократилось на 15-20% по всему региону в годовом исчислении, но мы увидели, что наши продукты с регулярной выручкой выросли на 5% в органическом выражении по сравнению с прошлым годом на нейтральной валютной основе, особенно благодаря нашей более высокой маржинальной регулярной выручке. продукты.

Мы очень воодушевлены результатами и динамикой, которые мы сейчас наблюдаем в этом регионе.Мы особенно рады работе наших новых продуктов, в том числе SCOPE BUDDY PLUS, адаптера для очистки DEFENDO и эргономичных скилеров Harmony от HuFriedy. Спрос на эти важные продукты позволяет Компании продолжать получать долю кошелька в том, что мы называем полным кругом защиты.

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

Наконец, наш бизнес в области наук о жизни работал в соответствии с постоянной целью обеспечения стабильной операционной прибыли и сильных денежных потоков. Суть в том, что мы считаем, что сочетание раннего прогресса в реализации инициатив Cantel 2.0 и новых продуктов помогает нам превзойти основные процедуры. Они позволяют нашим клиентам безопасно и эффективно лечить пациентов, внедряя решения Cantel по профилактике и контролю инфекций в то время, когда они проявляют повышенную чувствительность.

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

Как вы, возможно, помните, в прошлом квартале мы представили обновленные прогнозы на конец 2021 финансового года с маржой 22% плюс EBITDAS. Учитывая нашу эффективность до сих пор, мы еще более уверены в нашей способности достичь этого руководства.Этот прогноз EBITDAS уже учитывает возврат к более нормализованным операционным расходам в оставшейся части 2021 финансового года. Если посмотреть на наш третий квартал, который начался 1 февраля, наши медицинские и стоматологические сегменты продолжают демонстрировать хорошие результаты.

Как я уже указывал ранее, мы наблюдали некоторую мягкость процедур в январе по сравнению с ноябрем и декабрем, которая продолжалась в начале февраля, поскольку несколько крупных систем здравоохранения США приостановили выборные процедуры из-за увеличения показателей COVID после Нового года.Эти системы в основном вернулись к выборным процедурам, а вместе с ними и порядковую ставку. С продолжающимся внедрением вакцины мы ожидаем увидеть улучшение объемов процедур и, вероятно, возврат к 100% к концу финансового года.

Независимо от динамики базового рынка, мы по-прежнему уверены в нашей способности превзойти объемы базовых процедур. Мы также считаем, что потребность в усовершенствованных решениях по профилактике инфекций сохранится и в будущем, что обусловлено встроенными протоколами оказания медицинской помощи, повышенным соответствием нормативным требованиям и руководящим принципам профессиональных ассоциаций.Ранее 12 января 2021 года мы объявили, что Cantel и STERIS заключили окончательное соглашение о слиянии этих двух великих компаний.

С тех пор мы добиваемся устойчивого прогресса в выполнении необходимых шагов для завершения этой транзакции. Соглашение о слиянии было подано в январе, а 2 марта STERIS подала заявление о регистрации, которое включало предварительную версию доверенности. Шон расскажет вам полностью о наших финансовых показателях через мгновение, но стоит отметить, что, учитывая наши постоянные высокие показатели по генерированию денежных средств, мы снова ускорили погашение долга.Ранее в этом месяце мы выплатили наш револьвер еще на 50 миллионов долларов, в результате чего наша общая сумма долга снизилась до 175 миллионов долларов в 2021 финансовом году.

Это соответствует более высокому уровню нашего пересмотренного прогноза по общей сумме долга от 155 до 175 миллионов долларов. заплатить за весь 2021 финансовый год, который Шон сообщил в нашем отчете о прибылях и убытках за первый квартал. Мы продолжим оценивать возможности дальнейшего улучшения нашего баланса во второй половине 2021 финансового года.

Итак, на этом я передам слово Шону.

Шон Блейкман Старший вице-президент и главный финансовый директор

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

После этого я хотел бы предоставить дополнительную информацию, которая дает контекст для финансовых результатов во время COVID. Конечно, стандартные финансовые данные доступны в разделе доходов, чтобы вы могли следить за ними, и мы можем ответить на любые дополнительные вопросы, которые могут у вас возникнуть во время вопросов и ответов.Чистые продажи выросли на 1,9% в годовом исчислении во втором квартале 21 г. по сравнению с предыдущим годом и на 1,1% в пересчете на постоянную валюту. Влияние курсовой разницы составило 0,8%, а органический рост — 1,1%. Это значительно превзошло наши ожидания во втором квартале, поскольку мы по-прежнему наблюдаем повышенный спрос на наши продукты для профилактики инфекций как в медицине, так и в стоматологии.

Медицинский сегмент вырос за квартал на 0,1% в органическом выражении. При неизменной валютной основе капитальное оборудование уменьшилось на 5%, при этом текущая выручка за период увеличилась на 1% по сравнению с предыдущим годом.Важно отметить, что, хотя объем продаж капитала снизился по сравнению с предыдущим годом, мы по-прежнему сохраняли устойчивый портфель заказов в течение всего квартала, что свидетельствует о сохранении высокого базового спроса.

Несмотря на то, что эндоскопические процедуры стабилизировались примерно на уровне нашего первого квартала, мы рады, что продолжаем опережать рынок в категориях повторяющейся выручки. Стоматологический сегмент вырос на 4,3% на органической основе, в основном за счет умеренного улучшения основных стоматологических процедур в сочетании с сохраняющимся спросом на продукты для профилактики инфекций на стоматологическом рынке, включая СИЗ и дезинфицирующие химические средства.

Life Sciences снизились на 8% в органическом выражении, в основном из-за снижения продаж портативных установок обратного осмоса. Как и в первом квартале, это снижение в основном было вызвано сильным увеличением спроса во второй половине 2020 финансового года на наши портативные устройства, поскольку клиенты запрашивали эти устройства в разгар пандемии. Последовательно, с первого квартала 2021 финансового года мы показали положительный рост на 1,4%.

В сегменте диализа мы отметили органический рост на 35,6%, в основном благодаря благоприятным ценам, связанным с задержками производства в предыдущем году.Что касается консолидированной рентабельности, то наша валовая прибыль по GAAP увеличилась на 640 базисных пунктов до 48,8% по сравнению с 42,4% во втором квартале 2020 года, в то время как валовая прибыль без учета GAAP увеличилась на 190 базисных пунктов в годовом исчислении до 49%.

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

Операционная прибыль по GAAP увеличилась на 316,4% по сравнению с аналогичным периодом прошлого года до 31,6 млн долларов США. На основе не-GAAP операционная прибыль увеличилась на 30% по сравнению с аналогичным периодом прошлого года до 58,6 млн долларов США. Наша финансовая дисциплина в отношении дискреционных расходов сохраняется, и мы продолжим осторожно подходить к операциям с учетом продолжающейся неопределенности, связанной с COVID. Мы по-прежнему ожидаем, что операционные затраты будут незначительно увеличиваться каждый квартал, стабилизировавшись к 4 кварталу в пределах 90–95 млн долларов США в зависимости от объемов.

Переходя к налоговым ставкам, эффективная налоговая ставка GAAP за квартал составляла 25.2% по сравнению с выплатой в предыдущем году в 14,7%. Резерв в текущем году определяется нашей географической структурой доходов и частично компенсируется неблагоприятным влиянием, связанным с нашими расходами на компенсацию, основанную на акциях. Преимущество по налогу на прибыль за предыдущий год в основном было обусловлено нашим убытком до налогообложения в этом квартале и было компенсировано затратами периода, связанными с приобретением Hu-Friedy. Эффективная налоговая ставка не по GAAP составила 25% по сравнению с 25,9% в предыдущем году. Это снижение было вызвано географической структурой доходов.

В результате наша прибыль на акцию по GAAP увеличилась по сравнению с аналогичным периодом прошлого года до 0,27 доллара США. Чистая прибыль на акцию без учета GAAP увеличилась на 29,5% по сравнению с аналогичным периодом прошлого года до 0,79 доллара США. И, наконец, скорректированная EBITDAS составила 71 миллион долларов, что на 27,3% больше, чем в прошлом году. Денежный поток от операционной деятельности за квартал составил 47,7 млн ​​долларов США, увеличившись на 152,1% по сравнению с аналогичным периодом прошлого года, и мы закончили квартал с 243,1 млн долларов США наличными. Оборотный капитал снизился на 5% до 403,5 млн долл. США, в основном из-за небольшого уменьшения кассовой наличности в результате погашения нашего револьвера.Дебиторская задолженность не изменилась, запасы увеличились на 4%, а кредиторская задолженность увеличилась на 16%, причем все на последовательной основе.

Кроме того, в этом квартале капитальные вложения составили $ 11,5 млн, увеличившись по сравнению с первым кварталом до более нормальной нормы капитальных вложений. С учетом выплаты нашей задолженности на 50 миллионов долларов в начале квартала общий долг на конец квартала составил 988,4 миллиона долларов, а чистый долг составил 745,3 миллиона долларов. Отношение чистого долга к скорректированной EBITDAS составило 3,49 раза. Мы продолжаем улучшать операционный и оборотный капитал.Во время последнего квартала мы обновили наш прогноз по выплате 155 миллионов долларов до 175 миллионов долларов в 2021 финансовом году.

Учитывая наши стабильные высокие показатели и кассовую позицию во втором квартале, мы предложили выплатить еще 50 миллионов долларов нашего револьвера в В марте наша общая сумма выплат по долгу составила 175 млн долларов США с начала года, что соответствует верхнему пределу нашего пересмотренного прогноза на 2021 финансовый год за первые восемь месяцев. Мы ожидаем, что до конца 2021 финансового года мы ожидаем аналогичного операционного денежного потока с некоторой возможной изменчивостью, обусловленной сроками уплаты налогов и ожидаемыми возмещениями в соответствии с Законом о CARES.

Однако я также ожидаю некоторого увеличения оттока во второй половине этого года из-за доходов от приобретений и расходов, связанных с слияниями. Хотя мы не собираемся давать официальных указаний, я все же хочу внести некоторые изменения в наши ожидания в отношении третьего квартала. Мы ожидаем, что выручка в третьем квартале останется относительно стабильной и постепенно вырастет до несколько более высоких, чем ожидалось, результатов во втором квартале.

Начало февраля было немного слабым из-за всплеска заболеваемости COVID после праздников, но это было недолгим.Когда мы завершили февраль, мы увидели возврат к более высоким показателям заказов и ожидаем увидеть улучшения в третьем квартале. В целом, однако, мы все еще наблюдаем и ожидаем ту же картину, которую мы представили в прошлом квартале с начала года до текущей даты, с траекторией восстановления процедур, продолжающейся в третьем квартале и достигающей 100% в четвертом квартале.

Как и предполагалось ранее, мы по-прежнему ожидаем небольшого увеличения операционных расходов до конца финансового года. Как указывалось ранее, мы продолжим поддерживать строгую операционную дисциплину и готовиться к любым неожиданным колебаниям в процедурах восстановления из-за COVID.Мы уверены, что достигнем или превзойдем наш исходный прогноз на 4 квартал в размере 22% плюс EBITDAS. Напоминаем, что мы подадим 10-Q к концу этой недели. Теперь я верну его Джорджу для заключительного слова.

Джордж Л. Фотиадес Главный исполнительный директор

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

Прежде чем мы перейдем к вопросам и ответам, я хотел бы подчеркнуть, что для целей этой телеконференции мы будем отвечать только на вопросы, касающиеся финансовых показателей Cantel, о которых мы сообщаем сегодня, и не будем отвечать на вопросы, касающиеся объявленной транзакции с СТЕРИС. Как упоминалось ранее, STERIS недавно подала заявление о регистрации формы S-4, и эта документация содержит значительную информацию о транзакции, и мы хотели бы направить вас к этой документации для получения информации о транзакции.

Теперь мы будем рады ответить на любые вопросы о наших отчетах о доходах или результатах деятельности.

Вопросы и ответы:

Оператор

Спасибо. Дамы и господа, теперь слово открыто для вопросов. [Инструкции оператора]. Наш первый вопрос сегодня исходит от Мэтта Мишана. Ваша линия живая.

Мэтью Мишан KeyBanc — Аналитик

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

Шон Блейкман Старший вице-президент и главный финансовый директор

Да, Мэтт, позвольте мне ответить на вопрос о капитале.Послушайте, мы были здесь довольно агрессивно последние шесть-девять месяцев с точки зрения некоторых программ, нацеленных на капитал. Таким образом, наш процент выигрыша по капиталу был выше нашего традиционного показателя успешности, и мы ожидаем увидеть большую часть этого отставания в последней половине этого года. Итак, как вы знаете, в нашей первой половине года мы столкнулись с умеренным встречным ветром по сравнению с предыдущим годом. Мы ожидаем, что рост капитала будет положительным во второй половине 21 года.

Джордж Л. Фотиадес Главный исполнительный директор

Мэтт, это — Джордж.Что касается вопроса о процедурах, который вы задали, послушайте, нам трудно узнать из собранных нами данных о людях, которые планировали запуск в этих конкретных данных, переносятся ли они, о колоноскопии мы знаем то, что люди … это не похоже на пропущенную чистку или визит к стоматологу, людям нужно сделать колоноскопию. Так что явно происходит наверстывание упущенного в дополнение к запланированным новым.

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

Мэтью Мишан KeyBanc — Аналитик

Хорошо. Большое тебе спасибо.

Оператор

Спасибо.Наш следующий вопрос сегодня исходит от Ларри Кеуша. Ваша линия живая.

Лоуренс Кеуш Раймонд Джеймс — аналитик

Спасибо. Доброе утро всем. Здесь было несколько вопросов. Во-первых, я думаю, Джордж для тебя. Как было указано в звонке, вы ожидаете, что процедуры вернутся на 100%, и вы сформулировали это в четвертом квартале. Я думаю, мне просто любопытно, знаете ли, COVID все еще остается довольно динамичным, внедрение вакцины, дисперсия, вторая — может быть, четвертая волна.Итак, что дает вам уверенность в том, что вы вернетесь на 100%, потому что ваш четвертый квартал заканчивается в июле, так что это … это не так уж много месяцев? Так что просто хотел, чтобы ваши мысли были там.

Джордж Л. Фотиадес Главный исполнительный директор

Я думаю, что мы сказали, Ларри, если мне не изменяет память, мы выходим из четвертого квартала, поэтому мы говорим о 31 июля или приближаемся к августу. Я имею в виду, у нас нет никаких гарантий, я имею в виду, мы, очевидно, знаем, что очевидно будет высокая корреляция с прививками, и поскольку они продолжают набирать обороты, это улучшение.Очевидно, мы заметили улучшение даже на фоне COVID с низких уровней до нынешних.

Итак, мы отслеживаем 90%, в какой-то момент мы были 50%, а сегодня мы находимся на 90%, и назовите это так, а вакцинация была едва ли не 20% населения. Так что я думаю, что по мере того, как вакцинация достигает 50%, 60%, 70%, мы думаем, что 90% будут продолжать приближаться к 100%, какие именно данные упадут [фонетическая], у нас, очевидно, нет такой точности.

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

Шон Блейкман Старший вице-президент и главный финансовый директор

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

Лоуренс Кеуш Раймонд Джеймс — аналитик

Хорошо. Это очень полезно. Два других, я просто спрошу их заранее. Что мы думаем об изменениях в протоколах инфекционного контроля и профилактики, которые были внедрены как в отделениях GI, в частности, в ASC, так и в стоматологических кабинетах, когда они начинают работать, и вы теряете часть преимуществ улучшенных протоколы? Так что это вопрос первый, когда будет эта годовщина.

И затем, во-вторых, операционная маржа стоматолога, если я получил это право, последовательно снижалась с 30.От 6% до 26,3%, это, очевидно, все еще к северу от тех 25% тележки, которые у вас были. Но что привело к такому упадку? И как мы думаем о способности теперь поддерживать стабильность, когда операционная маржа Dental превышает эти 25%.

Сет Йеллин Исполнительный вице-президент по стратегии и корпоративному развитию

Итак, это Сет. Что касается притирки процедур IP&C, я имею в виду, я думаю, что думать об этом можно так: прошлой весной мы определенно видели замедление и прекращение выборных процедур, и в течение того времени, до середины лета, практики в основном были либо закрылись или на очень малых объемах, и они учились пересматривать протоколы и вроде как появились в середине лета, в конце лета, начав использовать усовершенствованные протоколы и процессы IP&C.

Тем не менее, я думаю, что рост объемов, который вы увидите вдобавок к этому, потому что они оставались на очень низком уровне общих объемов, будет продолжать расти. Так что я не знаю, обязательно ли это будет встречным ветром в ближайший период планирования, но, безусловно, мы видели принятие более высоких стандартов IP&C в конце лета, начале осени, несмотря на более низкие уровни объемов, которые имели место.

Шон Блейкман Старший вице-президент и главный финансовый директор

А что касается стоматологической маржи, Ларри, это Шон, вы знаете, послушайте, мы всегда говорили, что у нас есть бизнес на 25% больше. и, как мы упоминали в телефонном разговоре первого квартала, первый квартал действительно был просто необычно позитивным с точки зрения всех вещей, которые у нас были для нас в расходах, сдерживаемых из-за большого количества связанных с COVID, а также из-за того, что за год, и опять же, как мы как бы намекали, что неудивительно, мы действительно ожидаем устойчивого увеличения операционных расходов, а также некоторого сдвига вправо, что приведет к постепенному снижению этой маржи по сравнению с высшая точка, которую мы видели в первом квартале.

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

Таким образом, мы по-прежнему считаем это очень здоровым и устойчивым бизнесом на 25% больше.

Сет Йеллин Исполнительный вице-президент по стратегии и корпоративному развитию

Хорошо. Большой. Спасибо ребята. Ценить это.

Джордж Л. Фотиадес Главный исполнительный директор

Спасибо.

Оператор

[Инструкции оператора]. Наш последний вопрос на сегодня исходит от Майка Матсона.Ваша линия живая.

Майк Мэтсон Needham & Company — Аналитик

Доброе утро, спасибо за ответы на мои вопросы. Я хотел спросить о разнице, которую вы видите между ростом продаж и фактическим ростом процедур. Таким образом, в стоматологии и медицине, похоже, количество процедур сократилось на 10%, основываясь на данных третьих лиц, которые вы цитировали. Вы были на высоте в обоих этих бизнесах. Так что же движет этим дифференциалом? Это просто увеличение использования средств профилактики инфекций? И это что-то — устойчив ли этот дифференциал, другими словами, рост объема, рост объема процедур возобновляется, как вы думаете, сможете ли вы продолжать опережать объем процедур на такую ​​же величину?

Джордж Л.Фотиадес Главный исполнительный директор

Да, Майк. Там есть пара штук. Поскольку это относится к медицинскому бизнесу как к примеру того, где мы выполняем свои задачи, выходящие за рамки соответствия требованиям IP&C, как вы знаете, мы начали действительно делать некоторые правые повороты в нашем бизнесе в регионе EMEA, например, по сравнению с последние девять месяцев, действительно способствуя развитию коммерческого успеха в этом регионе. И если вы сделаете шаг назад, мы считаем, что Европа в прошедшем квартале, вероятно, приблизилась к этим 85–90%, и этот бизнес практически не изменился до нескольких пунктов.И, в конце концов, наш бизнес по производству расходных материалов, а также наша химия в текущем квартале были почти двузначными.

Итак, мы ожидаем, что начнем набирать очки в EMEA во второй половине 21-го. Я не удивлен, что мы начали видеть некоторые из этих успехов во втором квартале, так как наша история с ASC набирает обороты. Мы чувствуем, что у нас действительно хорошие возможности для того, чтобы показывать результаты и набирать очки во второй половине года, как мы и делали ранее. Так что это немного [неразборчиво] пунктов в медицинской части, а в отношении стоматологии, очевидно, история IP&C действительно вызывает резонанс, так как мы выпустили разработанный Ergo Harmony Scaler в нужное время, чтобы выйти на рынок, что, очевидно, также дало нам попутный ветер.

Майк Мэтсон Needham & Company — Аналитик

Хорошо, спасибо. И еще я хотел спросить об ASC. Так что просто интересно, не могли бы вы сообщить нам обновленную информацию о продвижении в этой области, о новых отделах продаж. А также, есть ли у вас представление об общей части эндоскопических процедур, на которые вы нацелены, которые выполняются в ASC [фонетическом], как и в больницах?

Джордж Л. Фотиадес Главный исполнительный директор

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

Майк Мэтсон Needham & Company — Аналитик

Хорошо, отлично. Спасибо.

Оператор

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

Джордж Л. Фотиадес Главный исполнительный директор

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

Итак, мы благодарим вас за звонок.

Оператор

[Заключительное слово оператора].

Продолжительность: 31 минута

Участники звонка:

Райан Лада Вице-президент по связям с инвесторами

Джордж Л. Фотиадес Главный исполнительный директор

Шон Блейкман — — Старший вице-президент и главный финансовый директор

Сет Йеллин Исполнительный вице-президент по стратегии и корпоративному развитию

Мэтью Мишан KeyBanc — Аналитик

Лоуренс Кеуш Раймонд Джеймс — аналитик

Майк Мэтсон Needham & Company — аналитик

Больше анализа CMD

Все расшифровки телефонных звонков

Эта статья представляет собой мнение автора, который может не согласиться с «официальной» рекомендательной позицией премиальной консультационной службы Motley Fool.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *