Почему команда PING в моем командном файле выполняется в цикле?

Я создал файл .BAT в Windows 7, который имеет следующую строку:

PING XXX.XXX.XXX.XXX -t 

(XXX заменяет фактический IP-номер). Однако, когда я дважды щелкаю по этому пакетному файлу, я вижу, что команда PING многократно выполняется в цикле. Я даже пытался переименовать ping.BAT в ping.CMD но результат тот же.

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

  • Почему Safely Remove Hardware так медленно?
  • Скрипт для открытия 12 окон браузера в 12 различных мониторах
  • Создание новой папки или файла с помощью проводника в Windows 7 не отображается в проводнике до тех пор, пока не будет нажата кнопка Обновить или F5
  • Значок воспроизведения Unicode ▶ отображается в заголовке страницы, неправильно отображается в моем браузере Firefox
  • Настройка виртуального ПК (виртуального окна) в качестве веб-сервера
  • Как улучшить аудио-манипуляцию с Windows 7, которая нарушена?
  • Печать экрана экрана Windows на Mac
  • Как отключить SMP в Windows 7?
  • 8 Solutions collect form web for “Почему команда PING в моем командном файле выполняется в цикле?”

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

    Учитывая, что ваш скрипт называется ping.bat и выглядит так:

      ping example.com 

    cmd.exe интерпретатор ( cmd.exe ) ищет / исследует пути в переменной окружения %PATH% для чего-то похожего на ping … и это делает, добавляя каждый суффикс из %PATHEXT% который содержит что-то вроде .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC . Так что вызов только ping из ping.bat приводит к поиску ping.com ping.exe ping.bat и так далее. Интерпретатор найдет ping.bat в текущем рабочем каталоге (ваш ping.bat ) и ping.bat его.

    Итак, у вас будет хорошая рекурсия : ping.cmd выполняет первую строку, ищет «ping», находит «ping.cmd», выполняет первую строку, ищет «ping», находит «ping.cmd», выполняет Первая строка, ищет «ping», находит «ping.cmd» …

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

    Интерпретатор командного файла обычно повторяет команды, которые вы записали в файл .bat / .cmd. Таким образом, что-то вроде этого ping www.superuser.com будет выглядеть так:

      C:\Users\XYZ\Desktop>ping www.superuser.com Ping wird ausgeführt für superuser.com [64.34.119.12] mit 32 Bytes Daten: Antwort von 64.34.119.12: Bytes=32 Zeit=110ms TTL=46 Antwort von 64.34.119.12: Bytes=32 Zeit=107ms TTL=46 

    Если вы хотите избавиться от C:\Users\XYZ\Desktop>ping www.superuser.com в выводе скрипта, вам нужно либо добавить каждую строку с помощью @ (например, '@ping http://www.superuser. Com ') в сценарии или помещать @echo off перед связкой команд, которые вы хотите выполнить «тихо».

    TL; DR; Не называйте свои файлы летучей мыши такими же, как существующие.

    У меня такая же проблема,

    Ping.bat содержит несколько строк команды ping

     ping host1 ping host2 ping host3 ... 

    Вывод в CMD-оболочке выглядел ниже и продолжался в цикле вкл. И далее до разрыва с помощью ctrl + C

     c:\ping host1 c:\ping host1 c:\ping host1 c:\ping host1 c:\ping host1 ... c:\ping host1 ^CTerminate batch job (Y/N)? 

    Чтобы решить эту проблему, просто переименуйте ping.bat , чтобы он не вызывал себя в пакетном файле или не использовал ping.exe в качестве команды в пакетном файле

     ping.exe host1 ping.exe host2 ping.exe host3 ... 

    Параметр -t делает пинг непрерывным.

    Возможно, удалите параметр -t, а затем сообщите вашему пакетному сценарию, что вы должны нажать клавишу ввода, прежде чем убить экран cmd.

    Не использовали окна в то время, но это должно работать:

     ping xxx.xxx.xxx.xxx pause exit 

    У меня были те же проблемы. Вот резолюция:

    Переименуйте файл ping.bat в pingtest.bat

    И убедитесь, что он содержит:

    Ping xxx.xxx.xxx.001
    Ping xxx.xxx.xxx.002
    Ping xxx.xxx.xxx.003
    Пауза

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

    По-видимому, выполнение локального скрипта предотвращает запуск ping.exe в скрипте. Попробуйте щелкнуть правой кнопкой мыши и «запустить как администратор». Я ищу, как обновить политику выполнения.

    Просто, когда я думал, что что-то знаю о Windows, они изменили его.


    Обновление: рекурсия – это ответ …

    Вы не можете назвать его ping.bat и вызвать ping.exe

    Вы также не можете называть его route.bat и вызывать route.exe.

    Например, когда я запускаю ping.bat, а затем запустите его снова как pingx.bat: Введите описание изображения здесь

    Щелкните правой кнопкой мыши – «Запуск от имени администратора» работал для меня.

    Это потому, что вы называете командный файл таким же, как и команда ping. Переименуйте свой командный файл в другое. Etc .: myping.bat

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

     @echo off PING XXX.XXX.XXX.XXX pause 
    Interesting Posts

    Нет пароля администратора для Windows 7

    Совместное использование WIFI вашего USB-порта Ethernet для подключения к Lenovo Yoga 3 pro

    Хостинг веб-сайта у себя дома: порт блокирования ISP 80?

    Мой диск SSD выровнен с 4k секторами, и если нет, то как его исправить?

    Как определить, является ли текущая версия Windows 32-разрядной или 64-разрядной из командной строки?

    Могу ли я установить заголовок по умолчанию для окна tmux?

    Наследование разрешений каталога Linux для созданных новых файлов

    Intel Rapid Storage отказывается работать (без кнопки в утилите SRT)

    Сделать Google Chrome с определенным профилем пользователя в качестве браузера по умолчанию.

    Как добавить элемент в контекстное меню «Отправить»

    Автозапуск блокнота, который не переключает эквиваленты tabs / notepad ++

    На что влияют разные значения функции расширенного управления питанием жесткого диска (hdparm -B), за исключением выключения?

    Как работает localhost 127.0.0.1?

    Как переустановить дополнительный диск Intel Matrix Storage Manager

    Мой источник питания скулит, я могу что-нибудь сделать с этим?

    Давайте будем гением компьютера.