Аналог bat-файлов в linux

Обновлено: 03.07.2024

Цель MAME – сохранить десятилетия истории программного обеспечения. Поскольку электронные технологии продолжают стремительно развиваться, MAME предотвращает потерю и забвение этого важного «винтажного» программного обеспечения. Это достигается путем документирования оборудования и того, как оно работает. Исходный код MAME служит этой документацией. Тот факт, что программное обеспечение можно использовать, служит в первую очередь для проверки точности документации (как еще вы можете доказать, что вы точно воссоздали аппаратное обеспечение?). Со временем MAME (первоначально расшифровывался как Multiple Arcade Machine Emulator) поглотил родственный проект MESS (Multi Emulator Super System), поэтому MAME теперь документирует широкий спектр (в основном старинных) компьютеров, игровых консолей и калькуляторов, в дополнение к аркадные видеоигры, которые были его первоначальным направлением.

Лицензия

Проект MAME в целом распространяется на условиях Стандартной общественной лицензии GNU, 2 (GPL-2.0), поскольку он содержит код, доступный по нескольким лицензиям, совместимым с GPL. Подавляющее большинство файлов (более 90%, включая основные файлы) находятся под лицензией BSD-3-Clause License, и мы рекомендуем новым участникам распространять файлы под этой лицензией.

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

Поддерживаемые платформы

Скачать

Скачать

Скачать

MAME 0,241

Снова уже последняя среда месяца? Это было быстро! Конечно, это означает, что это должен быть день выпуска MAME 0.241. В этом месяце вы сможете сыграть в The Tower, довольно низкокачественную имитацию Crazy Climber, работающую на кассетной системе DECO. Существует совершенно новый список программного обеспечения для мультимедийного проигрывателя Tandy/Memorex VIS. Имейте в виду, что это фактически был ПК с ОС Windows 286 без дискового кэша, на котором запускалось программное обеспечение с дисковода компакт-дисков. Неудивительно, что он не был популярен, получив бэкроним «Практически невозможно продать». Версия Wally wo Sagase для трех игроков! (основанный на популярных книгах «Где Уолли?») также был найден, выброшен и сымитирован.

Помимо ассортимента недавно поддерживаемых картриджей NES/Famicom, вы получите лучший опыт работы со световым пистолетом Zapper, улучшенной эмуляцией PPU (графика) и APU (звук), а также несколько исправлений для связанного монетоприемного VS. . Система и системы PlayChoice-10. Новые поддерживаемые системы включают несколько электронных игрушек от Entex и Mattel, а также еще пару шахматных компьютеров Fidelity. Если вы заинтересованы в написании сценариев MAME, интерфейс Lua теперь предоставляет доступ к адресному пространству для перехвата эмулируемого доступа к памяти, а также выражения отладчика и более простой способ обнаружения общих типов ввода.

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

MAME 0,240

Приближается лунный новый год и приближается четверть века с тех пор, как Никола Салмория выпустила MAME для публики, пришло время для MAME 0.240 — первого выпуска 2022 календарного года. Подождите, что это было? Четверть века? Да, 5 февраля исполнится двадцать пять лет с момента выпуска MAME 0.1, поддерживающего всего пять игр на базе Z80. MAME приближается к своему серебряному юбилею! И какой долгий путь мы прошли…

В этом месяце мы добавили поддержку еще десятков версий игровых автоматов Igrosoft с пятью барабанами. Но там похоронены оставшиеся версии игр серии Nintendo Game & Watch (редкие версии Helmet, Judge и Mario's Cement Factory), еще две игры Elektronika, основанные на программах Nintendo, немецкая версия Exidy's Mouse Trap и невероятно редкий маджонг. Заблокируйте Jongbou 2 от SNK.

В списках софта есть целая куча недавно выброшенных прототипов консольных игр и несколько самодельных тайтлов для Bandai RX-78. Это помимо постоянного потока дискет Apple II, кассет Commodore 64, компакт-дисков FM Towns и недавно поддерживаемых картриджей NES и Famicom. Основываясь на работе, проведенной в прошлом месяце, CD-i получил еще несколько исправлений, повышающих производительность и добавляющих поддержку большего количества дисков.

Вы можете прочитать обо всем, чем мы занимались весь месяц, в файле whatsnew.txt или загрузить исходный код и 64-разрядные бинарные пакеты для Windows на странице загрузки.

MAME 0,239

Вы думали, что мы позволим 2021 году закончиться без прощального релиза MAME? MAME 0.239 уже здесь, как раз к Новому году. Этот выпуск включает в себя исправление многих тонких и не очень тонких проблем со звуком и синхронизацией музыки в играх, использующих микросхемы синтеза Yamaha FM. Частота кадров в играх Gaelco была скорректирована, чтобы удовлетворить некоторые хитрые проверки защиты, исправить сбои при продолжении в Thunder Hoop и графические проблемы в Squash.Большое обновление для эмуляции Philips CD-i только что появилось в этом выпуске, значительно улучшив опыт во многих играх. Эмуляция Nintendo Famicom Disk System также претерпела некоторые улучшения в этом месяце.

Этот релиз содержит еще больше советских скинов программы Game & Watch Egg, последние дампы и кряки Apple II, очередную партию кассет Commodore 64 и более экзотические картриджи NES и Famicom. Милан Галцик, который был занят портативными играми Elektronika, также завершил словацкий перевод пользовательского интерфейса и обновил заброшенный чешский перевод. В этом месяце были обновлены эмуляции как подлинных, так и клонированных систем Apple II. Теперь поддерживается ряд уникальных функций VTech Laser и Franklin ACE, а также улучшена производительность Apple IIgs.

Конечно, есть намного больше, чем у нас есть время, чтобы поговорить здесь, и вы можете прочитать все об этом в файле whatsnew.txt или получить исходный код и 64-разрядные двоичные пакеты Windows со страницы загрузки.

MAME 0,238

Вы знаете, сколько сейчас времени? Пришло время MAME 0.238, нашего ноябрьского релиза! После многих лет ожидания в редкий космический шутер Monster Zero от Nihon Game теперь можно играть. Несмотря на название, в этой игре нет трехголового космического дракона. В этом выпуске добавлена ​​поддержка Fowling и Monkey Goalkeeper, еще двух портативных игр Elektronika, созданных на основе программы Egg/Mickey Mouse Game & Watch.

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

В этом месяце была добавлена ​​или исправлена ​​поддержка нескольких контроллеров Famicom, в том числе IGS Tap-tap Mat, Bandai Family Trainer, Bandai Power Pad, Bandai Hyper Shot, Konami Doremikko Piano Keyboard и Konami Exciting Boxing airbag. Помимо поддержки периферийных устройств, драйверы Acorn Archimedes теперь поддерживают расширения модуля, слот модуля Econet, последовательные/параллельные порты и разъемы расширения ПЗУ.

Вы можете прочитать обо всех действиях по разработке в этом месяце в файле whatsnew.txt или загрузить исходный код и двоичные пакеты для 64-разрядной версии Windows на странице загрузки.

MAME 0,237

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

  • Совершенно новый подключаемый модуль ввода макросов.
  • Подключаемый модуль данных теперь может отображать текст из японского файла command.dat (или китайского файла command.txt, если вы переименуете его в command.dat).
  • Место, которое подключаемый модуль поддержки hiscore использует для хранения своих данных и конфигурации, изменилось. Вы не потеряете свои рекорды, но вам нужно переместить файлы .hi из папки hi в папку hiscore в папке данных вашего плагина (homepath).< /li>
  • Формат конфигурации для подключаемого модуля autofire изменился. К сожалению, вам придется снова добавить настройки кнопки автозапуска.

К интересным машинам, добавленным в этом месяце, относятся мексиканский клон цветного компьютера TRS-80, Tronica Thunder Ball (переделка Space Rescue с морской тематикой), оригинальная версия Pengo, на которой, похоже, основаны широко распространенные бутлеги, исходная аппаратная версия Laser 128 (клон Apple II) и немного более старая версия Street Fighter Zero 2 Alpha для Азии.

Master of multi-memory controllers kmg все еще работает над расширением совместимости NES/Famicom и картриджей-клонов. Основные события месяца:

  • Симулятор управления железной дорогой A Ressha de Ikou.
  • Недавние игры NES/Famicom, выпущенные Ancient для продвижения Gotta Protectors (Минна де Мамотт Найт). Разработка NES продолжается более двух десятилетий после того, как в 1995 году была выпущена последняя лицензионная игра.
  • Две образовательно-развлекательные игры Korean Brilliant Com (영재컴).
  • Некоторые картриджи с несколькими играми с амбициозной игрой Titenic, вдохновленной очень успешным фильмом Джеймса Кэмерона.
  • Kart Fighter — с использованием движка из нелицензионного порта Street Fighter II для NES и нелицензионных изображений списка персонажей из Super Mario Kart, это почти предчувствие Super Smash Bros. Он даже показывает удар хвостом Йоши и изображает Кинопио (Жаба) в образе безжалостного драчуна задолго до того, как костюм Mii стал доступен для покупки.
  • Известная несложная поделка на тему Марио 7 Grand Dad. НАЖМИТЕ ↑ КНОПКУ ПУСК. ПОЛУЧИТЕ ДОПОЛНЕНИЕ ИГРЫ. И ПИТАТЬ КРОВЬ

В этом месяце была улучшена совместимость программного обеспечения Amiga, семейство NEC PC-6001 получило список программного обеспечения для картриджей, а также была добавлена ​​еще одна партия кассет Commodore 64. Была выявлена ​​проблема с «поддельными взломщиками E7» Apple II, которые могли помешать им работать, если они были записаны на диски для использования на оригинальном оборудовании. Хотя это не помешало их использованию в MAME, образы дисков с исправленной проблемой были добавлены в список программного обеспечения. Также было добавлено более сотни взломов Apple IIgs.

Вы можете прочитать обо всех интересных событиях этого месяца в файле whatsnew.txt или загрузить исходный код и двоичные пакеты для 64-разрядной версии Windows на странице загрузки.

Предстоящие изменения в MAME

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

Во-первых, мы добавили поддержку локализованных файлов системных имен, используемых интерфейсными программами, такими как Retrofire, MxUI и MAME Plus! Популярные файлы включают mame32j.lst (японский) и mame_cn.lst (китайский). Вы сможете поместить предпочитаемый файл системного имени в папку DAT (или «история») и выбрать его в меню настроек пользовательского интерфейса MAME. Поддержка локализации пользовательского интерфейса стала более полной, а MAME 0.237 будет включать высококачественные китайские и греческие переводы благодаря YuiFAN и BraiNKilleRGR.

Улучшена навигация с помощью мыши/трекбола (вы можете даже щелкать DIP-переключатели, чтобы переключать их), а меню выбора системы и программного обеспечения были изменены, чтобы включать больше информации и лучше использовать пространство.

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

Если вы компилируете MAME самостоятельно, Python 2.7 больше не будет поддерживаться: теперь для компиляции MAME требуется Python 3.2 или более поздней версии (это не повлияет на вас, если вы просто используете MAME, Python не требуется для запуска MAME). Большинство операционных систем годами включали Python 3, а наши инструменты сборки MSYS64/MinGW для Windows уже включают Python 3.8 — пока у вас есть команда python3, все готово.

Чтобы ознакомиться с более полным списком изменений, читайте дальше.

MAME 0,236

Главное событие дня уже здесь! MAME 0.236 готова для вашего удовольствия! К сожалению, в этом месяце ушел из жизни сэр Клайв Синклер, который, как можно утверждать, сделал больше, чем кто-либо другой, чтобы дать компьютеры в руки обычных людей. В этом выпуске есть небольшое обновление списка программного обеспечения MAME ZX Spectrum.

Попытка избавиться от микроконтроллеров защиты и сохранить их все еще идет успешно. Дополнения этого месяца включают Juuouki и Wonder Planet. Убрана симуляция защиты для Wonder Planet и Space Harrier. Помните, что это достойная цель, дающая множество преимуществ: она повышает точность за счет исключения предположений из эмуляции, помогает людям обслуживать и ремонтировать устаревшие игровые автоматы, а также упрощает код MAME.

NEC PC-8001 от MAME теперь поддерживает гибкие диски. Списки программного обеспечения PC-8001 и PC-8801 были реорганизованы, чтобы соответствовать друг другу, и была добавлена ​​большая партия предметов из коллекции Neo Kobe. MAME продолжает расширять охват картриджей для NES/Famicom. Сейчас есть множество игр, в которые вы можете играть, включая китайские ролевые игры, бутлеги файтингов и пиратские мультиигровые картриджи. Испытайте параллельную вселенную программного обеспечения такого непостоянного качества, что вы не можете перестать спускаться в кроличью нору! Эмуляция Saturn претерпела несколько улучшений: несколько игр, которые ранее не загружались, стали играбельными в этом месяце.

Для людей с более экзотическими вкусами MAME добавила список своего самого старого рабочего программного обеспечения: Munching Squares и Punchy для MIT TX-0. Также есть новый дизассемблер для архитектуры DEC VAX. Что касается более приземленных новостей, теперь вы можете уменьшить количество дубликатов наборов ПЗУ для семейств похожих клавиатур и других устройств.

В настоящее время я использую файл .bat, который используется для вызова файла java. Если бы я хотел использовать ту же функциональность в Mac OS, какие изменения формата я бы сделал? (если эквивалент .bat в Mac OS не является форматом .sh?)

Мы будем признательны за любую помощь.

3 ответа 3

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

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

Замените папки в указанном выше пути на соответствующие.

Затем сделайте этот скрипт исполняемым: откройте терминал и перейдите в папку с вашим скриптом.Затем измените права на чтение-запись-выполнение для этой команды запуска файла:

Затем вы можете запустить его, как и любой другой обычный скрипт: ./scriptname.sh

или вы можете запустить его, передав файл в bash:

Большое спасибо за ваши быстрые ответы, я изменил расширение .bat на .sh, это все, что мне нужно сделать? я также изменил обратную косую черту (\supportlibraries\Framework) на прямую

Этот ответ бесполезен, кому-то, кто не знает эквивалент пакетного файла в Mac, потребуется больше деталей, например, где лучше всего разместить сценарий bash, как добавить к исполняемому пути и т. д.< /p>

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

Если вы не хотите изменять разрешения для чтения и записи, мы можем использовать "chmod +x scriptname.sh", чтобы просто добавить разрешение на выполнение.

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

Обратите внимание, что '\' становится '/'.

Вы можете выполнить как

или установите бит x в файле

а затем просто позвоните

Вау, спасибо, Бретт Фрир, за ваш быстрый ответ, наконец-то разберитесь с .sh , но у меня есть еще один вопрос, о котором я упоминал .\supportlibraaries\Frame . будет .sh переходить к точной родительской папке

Пути будут относиться к каталогу, из которого вызывается сценарий оболочки, поэтому, если это не обязательно имеет смысл для вашего контекста, вы можете добавить команду «cd somedir» над строкой java или ввести абсолютный путь.

Я нашел полезную информацию на странице форума, приведенной ниже.
Из этого, в основном из предложений, выделенных жирным шрифтом, мой ответ:

Создайте версию сценария bash (shell) для вашего .bat-файла (как и другие
ответы, с \ измененным на / в путях к файлам). Например:

Если пользователь приложения собирается использовать версию файла сценария bash в Linux
или запускать его из командной строки, ему необходимо добавить права на выполнение
(биты режима изменения) с помощью этой команды. , в папке с файлом:

Вопрос на странице форума:

Добрый день, [. ] Мне интересно, есть ли какие-нибудь "простые" правила для написания эквивалента
файла bat для Windows (DOS). Я хотел бы просто щелкнуть файл и запустить его.

Информация из некоторых ответов после вопроса:

Напишите сценарий оболочки и присвойте ему расширение ".command". Например:

– Тони T1, 23 марта 2010 г.

– 23 марта 2010 г., J D McIninch.

Эта статья посвящена написанию сценариев для DOS, OS/2 и Windows. Другие типы пакетного программирования см. в сценарии оболочки.

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

Содержание

История

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

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

Ранние влияния

На пакетный язык Microsoft DOS повлияли различные оболочки Unix, а также другие текстовые интерфейсы командной строки начала 1980-х годов, такие как CP/M, которые, в свою очередь, черпали вдохновение из TOPS-10 и TOPS-20 из Корпорация цифрового оборудования. Хотя пакетный файл DOS аналогичен сценарию оболочки в Unix-подобных операционных системах, синтаксис и набор доступных команд менее сложны.

Примером важного пакетного файла был AUTOEXEC.BAT, который автоматически запускается после загрузки DOS во время загрузки. Обычно в нем были команды для загрузки драйверов. [2]

Улучшения и альтернативы

Ограничения интерпретатора команд DOS привели к тому, что различные интерпретаторы, не принадлежащие Microsoft, предоставили расширенный синтаксис, предоставив «расширяющие» команды, такие как команды Norton Utilities (например, BE или Batch Enhancer), в 1989 г. заменившую оболочку 4DOS.

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

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

  • Windows 1, 2 и 3.
  • Windows 95 и 98.
  • Windows ME (доступ к реальному режиму MS-DOS был ограничен).

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

Windows NT

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

Различия

Единственное известное различие между обработкой файлов .cmd и .bat заключается в том, что в файле .cmd переменная ERRORLEVEL изменяется даже при успешной команде, на которую влияют расширения команд (когда расширения команд включены), тогда как в файлах .bat переменная ERRORLEVEL изменяется только при ошибках. [5]

Пример

Чтобы выполнить файл, его необходимо сохранить с расширением .bat или .cmd в текстовом формате (с помощью такой программы, как Блокнот).

Результат

При выполнении (либо из проводника Windows, либо из командной строки) отображается следующее:

Пояснение

Пакетные файлы выполняются каждой строкой по порядку, пока не будет достигнут конец или что-то еще не остановит его (например, сочетание клавиш для прекращения пакетной обработки; «Ctrl» + «C»). Этот пакетный файл сначала отключает «эхо» с помощью ECHO OFF. Это останавливает отображение ввода из пакетного файла и ограничивает отображение выводом только команд. Поскольку эта команда выполняется до того, как ввод будет отключен, символ @ используется в начале команды, которая останавливает отображение ввода в этой командной строке. Затем снова используется команда ECHO в форме ECHO.Hello World! который выводит строку Hello World! . . важен, так как он не позволяет команде ECHO путать попытку вывода строки с «ON» или «OFF» в начале с попыткой изменить состояние отображения ввода, и легче определить, какие строки являются выходными с помощью . там в качестве наглядного пособия. Затем команда ЭХО. используется, что добавляет пустую строку ниже Hello World! , снова используя . так что команда не выводит состояние входного дисплея ( ECHO включено или ECHO выключено ) и просто выводит пустую строку. Затем используется команда PAUSE, которая приостанавливает выполнение до тех пор, пока пользователь не нажмет клавишу. Нажмите любую клавишу, чтобы продолжить. . . приглашение выводится командой. Наконец, после того, как пользователь нажимает клавишу, используется команда ECHO ON, которая снова включает подсказку и ввод, так что, если файл выполняется из командной строки, а не из проводника Windows, то, когда выполнение заканчивается, пользователь может увидеть подсказку. снова использовать нормально. После достижения последней строки командный файл автоматически завершает выполнение. Если он был запущен из командной строки (путем ввода имени файла в его каталоге), то окно остается после завершения, но при запуске из проводника Windows окно автоматически закрывается по окончании выполнения.

Будущее

Microsoft пока официально не опубликовала информацию о будущем командной строки (хост для файлов .bat и .cmd), но сейчас компания начинает включать Windows PowerShell в выпуски для новых операционных систем, в которых есть все основные функции командной строки и многое другое (и вместо файлов .bat и .cmd он запускает файлы .ps1). Тем не менее, важно помнить, что нет уверенности, что это заменит командную строку, и что Microsoft по-прежнему создает важные инструменты специально для командной строки, а не для PowerShell (например, cmd.exe, который включает в себя весь набор функций диспетчера сервера). для Windows Server 2008). [6]

Другие текстовые файлы сценариев

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

Как приостановить выполнение на некоторое время в пакетном файле Windows между командой и следующей?

Или текст, поясняющий ситуацию. В основном это помогает с SEO, но также помогает сформулировать потенциальные ответы.

5 ответов 5

Правильный способ приостановить работу пакетного файла — использовать команду timeout, представленную в Windows 2000.

Тайм-аут будет прерван, если пользователь нажмет любую клавишу; однако команда также принимает необязательный переключатель /nobreak , который эффективно игнорирует все, что пользователь может нажать, кроме явного CTRL-C :

Кроме того, если вы не хотите, чтобы команда выводила на экран обратный отсчет, вы можете перенаправить ее вывод в NUL :

Команда timeout не работает в Windows XP даже с установленным набором ресурсов 2003, а команда sleep не работает в Windows 7, поэтому команда ping все еще может быть полезной, если вы используете пакетный файл как в Win7, так и в Windows 7. WinXP.

время ожидания не работает в неинтерактивных сценариях: "ОШИБКА: перенаправление ввода не поддерживается, процесс немедленно завершается". поэтому иногда предпочтительнее использовать хак с "пингом".

Для справки, это отлично работает в Windows 10 2004 (b19041.630): C:\WINDOWS\system32>timeout /t 5 & ping mit.edu -- это делает паузу/обратный отсчет на 5 секунд, затем пингует mit. .edu 4x и переходит к подсказке, как и ожидалось.

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

Если вы хотите использовать ping, есть способ получше. Вы захотите пропинговать адрес, который не существует, поэтому вы можете указать время ожидания с точностью до миллисекунды. К счастью, такой адрес определен в стандарте (RFC 3330) и это 192.0.2.x. Это не выдумка, это действительно адрес с единственной целью - не существовать (это может быть непонятно, но это применимо даже в локальных сетях):

Чтобы заснуть на 123 миллисекунды, используйте ping 192.0.2.1 -n 1 -w 123 >nul

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

@Massimo Скорее всего, это не то, для чего он был предназначен :) Но я все же думаю, что это хорошее решение - в некоторых сценариях оно работает лучше, чем тайм-аут (в частности, с более высоким разрешением). Кроме того, он стал довольно широко известен, поэтому большинство людей не сильно удивятся (т. е. смутятся), увидев его в пакетном файле.

@Massimo Хорошо! Я думаю, у нас просто разные взгляды. Если вы не возражаете, я все равно оставлю этот ответ, так как он кажется лучше, чем пингование локального хоста n раз, как это чаще всего описывается.

timeout – это правильное решение для операционных систем, в которых он работает. ping — единственное решение, которое работает с 5.1 по 6.3. Поскольку 25 % систем по-прежнему используют версию 5.1, тайм-аут не является «правильным способом».

тайм-аут — неправильное решение для любой операционной системы, потому что он неисправен даже в Windows 10. Что толку от команды, которая завершается ошибкой только из-за перенаправления ввода?

Вы можете спать в пакетном режиме с помощью PowerShell:

Миллисекунды

Секунды

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

Эм. вся цель этого Q / A заключалась в том, чтобы точно исправить два других вопроса, которые имеют этот принятый ответ, но больше не могут быть исправлены, потому что их OP больше нет.

Хотя это и сработает, это все равно, что забивать винт молотком. Неправильный инструмент может работать, но это все равно неправильно.

@MarkAllen - технически вам придется беспокоиться о том, идет ли пинг с вашей ОС. Если вы достаточно беспокоитесь о 95-м, 98-м или ME, то вы должны в равной степени беспокоиться о 6.22, у которого тоже нет пинга

@Massimo Назовите это синдромом утенка. О, я только что увидел ваш комментарий выше. Вы даже не задавали это как настоящий вопрос, вы просто хотели, чтобы ваш ответ был ответом на вопрос в целом. Понимаю. Может быть, в следующий раз вы могли бы включить это в свой вопрос. Тогда я мог бы не тратить на это время.

@MarkHenderson Мне проще (для меня) вспомнить, поддерживает ли конкретный выпуск ОС TCP/IP, чем вспомнить, включает ли он команду, которую я раньше не слышал. Вы знаете?

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

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

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

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

Читайте также: