Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

for — команда, организовывающая цикл в командной строке (CMD) Windows. Аналог цикла for в C-подобн. ЯП.

Как создать бесконечный цикл в командном файле Windows?

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

Похоже, в пакете доступны только for циклы, а в пакете нет while циклов. Как мне тогда создать бесконечный цикл?

6 ответов

Как насчет использования старого доброго (?) goto ?

См. Также это более полезный пример.

Вот пример использования цикла:

Это простой пакет, который я использую, когда мне нужно зашифровать любое сообщение в хэш md5 в Windows (требуется openssl), и программа будет лояльно повторять себя, за исключением Ctrl + C или пустого ввода.

Еще один лучший способ сделать это:

Таким образом, вы тоже можете позаботиться об ошибках

Прочитать help GOTO

Действительно бесконечный цикл, считая от 1 до 10 с шагом 0.
Вам нужно бесконечное или большее количество шагов, чтобы достичь 10.

Это может быть полезно, если вам нужен действительно бесконечный цикл, поскольку он намного быстрее, чем версия goto :loop , потому что цикл for полностью кэшируется один раз при запуске.

Неограниченный цикл в однострочной команде для использования в окнах cmd :

Как сделать бесконечный цикл в cmd?

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

Если речь идёт непосредственно о командной строке

то стоит воспользоваться циклом for :

Если же речь о bat-файле

в предыдущей команде можно удвоить знак процента:

но лучше воспользоваться меткой и goto :

Всё ещё ищете ответ? Посмотрите другие вопросы с метками windows cmd bat faq или задайте свой вопрос.

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Windows CMD/Циклы/for

for — команда организовывающая цикл в командной строке (CMD) Microsoft Windows. Аналог цикла for в Си-подобных языках программирования.

Содержание

Преамбула

Цикл for производит выполнение указанной команды для каждого файла набора.

Синтаксис

Переменные

Особенности переменных

  • Имена переменных учитывают регистр букв (%i отличается от %I).
  • Переменные должны быть односимвольными (по крайней мере для числового цикла).

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

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

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

Числовой цикл

Синтаксис числового цикла:

Пример числового цикла

Бесконечный цикл

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

Примеры бесконечного цикла

Пример бесконечного цикла 1:

Пример бесконечного цикла 2:

Перебор всех файлов в директории

Отображать только имена файлов (не полный путь) с их расширениями в текущем каталоге:

Знакомая многим ситуация: компьютер включен, доступ в Интернет есть, но не открывается какой-то определенный сайт или сервер в сети. Например: не доступен игровой сервер или игра сильно тормозит при подключении к нему. Что делать? Ответ прост – проверка на пинг и трассировка! Другими словами можно проверить доступность сетевых ресурсов с помощью диагностических методов, самые распространённые из которых — утилиты Ping, Tracert/Traceroute и MTR/WinMTR. Давайте рассмотрим подробно каждую из данных утилит.

Сетевая утилита Ping — это самый простой способ проверить доступность любого сетевого ресурса. При условии, что у этого ресурса открыты «пинги» из вне, то есть разрешено использование протокола ICMP.

Как это работает? Команда Ping отправляет небольшие пакеты с данными на сервер, который надо проверить. В ОС Windows по умолчанию посылается серия из 4-х таких пакетов. В ОС Linux пакеты посылаются непрерывно, пока пользователь не прервёт операцию. Спустя некоторое время от сервера приходит ответ — в виде тех же пакетов, какие и были отправлены. Если число отправленных и полученных пакетов совпадает — это значит сервер «живой» и никаких проблем с его доступностью не наблюдается.

Как пропинговать сайт или сервер в Windows?

Ping – это консольная утилита, которая запускается с помощью командной строки. Она присутствует во всех версиях ОС Windows. Я буду показывать её работу на примере Windows 11.

Нажимаем правой кнопкой мыши на кнопку «Пуск» чтобы открылось дополнительное меню. Там надо выбрать вариант «Терминал»( в Windows 10 это «Командная строка»):

командная строка в windows 11

как пользоваться командой ping

Смотрим результат: отправлено было 4 пакета размером по 32 байта. Время прохождения каждого пакета составило в среднем 22 мс. Все отправленные пакеты дошли до сервера и вернулись обратно.

результаты пинга сервера

По умолчанию команда Ping в ОС Windows отправляет всего 4 пакета данных.

Чтобы отправить больше пакетов, можно задать их количество с помощью параметра –n. Пример для отправки 10 тестовых пакетов:

ping –n 10 yandex.ru

Результат будет таким:

как пинговать ip в сети

Как вариант, можно использовать команда ping с параметром «-t», чтобы пинговать сервер бесконечно, до принудительного прекращения задачи, как в Linux. Команда будет выглядеть так:

ping ya.ru -t

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

как запустить бесконечный пинг

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

превышен интервал ожидания для запроса

Как проверить пинг до сервера в Linux?

как запустить терминал в ubuntu

Запускаем терминал. На некоторых ОС Линкус значок терминала есть прямо на рабочем столе, а на каких-то надо открывать меню и запускать его оттуда. В KDE, например, через раздел меню Администрирование > Терминал.
В терминале вводим команду ping, адрес проверяемого ресурса и нажимаем клавишу «Enter».

ping testing linux

В отличие от систем семейства Windows, по умолчанию проверка пинга в Linux идет непрерывно, пока пользователь не прервёт этот процесс с помощью комбинаций клавиш Ctrl + C.

В Linux так же можно задавать нужные параметры с помощью аргументов, но они могут отличаться от аргументов в ОС Windows, которые я показывал выше. Например в Линуксе количество тестовых пакетов задаётся через агрумент «-c», а не через «-n». Для того, чтобы увидеть все доступные агрументы команды Пинг — введите вот такую команду:

аргументы команды ping

Как видите, аргументов очень много, что позволяет провести очень тщательную сетевую диагностику доступности удалённого узла сети

Как сделать пинг и трассировку в OC Windows? Для того, чтобы выполнить пинг или трассировку необходимого сайта на компьютере с операционной системой Windows, нажмите на сочетание клавиш Win+R на клавиатуре или откройте панель «Пуск» и далее нажмите на «Выполнить». 1. В появившемся окне наберите cmd и нажмите «ОК».

Как выполнить команду ping?

Для этого можно воспользоваться двумя утилитами, которые входят во все версии ОС Windows: ping и tracert. При этом откроется окно на черном фоне с командной строкой Windows. Чтобы запустить для проверки ping, необходимо набрать команду ping site.com, где site.com – имя вашего домена.

Как поставить вечный пинг?

Как запустить бесконечный пинг (ping)

  1. Нажимаем Пуск – Выполнить (или поискова строка)
  2. Вводим cmd, запускаем
  3. Вводим команду ping -t IP.

14 февр. 2016 г.

Как пинговать сеть?

Введите команду Ping.

  1. Обычно имя узла (hostname) — это адрес веб-страницы. Замените hostname на тот веб-сайт или сервер, который вы хотите пинговать. …
  2. IP-адрес — это расположение компьютера в сети, либо локальной, либо в интернете. …
  3. Чтобы ваш компьютер пинговал сам себя, наберите ping 127.0.0.1 .

Как увеличить размер пакета Ping?

С точки зрения безопасности, и, как отмечает Джон Т , увеличение размера пакета для сообщений ICMP обычно приводит к отказу в обслуживании. Но вы можете открыть несколько экземпляров ICMP Ping одновременно. Откройте RUN> введите ping IP -t -l 65500 и сделайте то же самое 10 или более раз, это умножит пакеты.

Как проверить есть ли связь с сервером?

Чтобы проверить сетевое соединение:

  1. Перейдите в меню Пуск и наберите в поисковой строке командная строка или cmd.exe . Запустите приложение.
  2. Введите в окне команду ping <адрес сайта> -n 10 и нажмите Enter.
  3. Чтобы скопировать информацию, в любом месте открытого окна нажмите правой кнопкой мыши и выберите Выделить все.
:/>  Как удалить пользовательские папки из " Этот компьютер "? в проводнике Windows 10

Как проверить пинг сети?

Для того, чтобы проверить пинг узла в интернете, необходимо использовать в командной строке специализированную команду «ping», через пробел после которой следует ввести web-адрес интересующего сайта или его ip и нажать клавишу Enter.

Что выводит команда ping?

Какой протокол используется при команде ping?

Как остановить бесконечный пинг?

Вам нужно остановить команду Ping, нажав CTRL + C. Иначе она будет выполняться бесконечно.

Как пинговать локальную сеть?

Что можно пинговать для проверки интернета?

Попробуйте пинговать 8.8.8.8, это основной DNS-сервер Google. Я всегда пингую его, чтобы проверить мое соединение, и я так и не нашел его. В качестве альтернативы вы можете попробовать 8.8.4.4, который является вторичным DNS Google. ping также принимает TLD.

Как пинговать роутер в сети?

Как сделать постоянный пинг?

Бесконечный пинг удаленного узла

Каким должен быть нормальный пинг?

— до 40 мс — идеальное значение. Такое время реакции позволяет комфортно пользоваться стримминговыми сервисами (Twitch, прямые трансляции на Youtube и так далее), наслаждаться всеми популярными многопользовательскими играми и без задержек получать доступ к web-страницам; — 40 — 110 мс считается нормальным значением.

Что делает команда ARP?

Сколько отваривать шампиньоны?
Сколько пачек сигарет можно провезти в польшу?
Сколько пачек сигарет можно провозить в Европу?
Сколько пачек сигарет можно провозить в турцию?
Сколько пачек сигарет можно ввозить в Евросоюз?
Сколько пачек сигарет можно ввозить в Литву?
Сколько парт должно быть в классе?
Сколько партий в парламенте России?
Сколько пенсий выплачивается после смерти пенсионера?
Сколько пенсионных баллов необходимо заработать?


Добро пожаловать в матрицу в командной строке: 5 шагов (с изображениями) — Схемы — 2022

Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

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

Я узнал об этом несколько лет назад и решил превратить его в Учебный. Я люблю ходить в компьютерные магазины, такие как Circuit City или Costco, и показывать это на экране.

Забавно видеть лица людей, когда они проходят мимо, и на экране написано:

“Добро пожаловать в Матрицу”

Расходные материалы:

Шаг 1: Материалы

Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

Что мне нужно, чтобы покорить Матрицу?

  • Любая модель Windows с командной строкой
  • Модуль «Выполнить» в вашем меню «Пуск»
  • клавиатура
  • Сила Матрицы

Шаг 2: Открытие командной строки

Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

После того, как вы «запустили» открытое. Введите «cmd» в текстовое поле.

Затем нажмите OK, и должно появиться чудесное черное диалоговое окно DOS.

Если вы учитесь в школе и ваша команда «выполнить» отключена, обратитесь к последнему шагу, чтобы найти дополнительный способ открыть командную строку.

Шаг 3: печатать все в

Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

Итак, теперь у вас есть открытая командная строка, теперь пришло время ввести то, что мы хотим.

  • cls означает очистить экран.

Далее введите слово «подсказка».

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

  • Добро пожаловать в Матрицу Добро пожаловать в Матрицу Добро пожаловать в Матрицу Добро пожаловать в

Введите его так, как вы видите выше.

Шаг 4: Создание матрицы цветов

Как сделать бесконечные числа в командной строке и как проверить пинг и трассировку на сервер? Команды Ping, Tracert и MTR

Хорошо, теперь пришло время сделать цвета матрицы.

Наберите «cls», чтобы все прояснить. Не волнуйтесь, информация не будет потеряна.

Как сделать матрицу в командной строке?

1) Открой программу Блокнот.
Скопируй и вставь вот этот текст:

Пишем в открывшемся окошке без кавычек: «cmd.exe»

В новом открывшемся окошке пишем без кавычек: «color a»

Далее пишем без кавычек: «cd \»

Далее пишем без кавычек: «tree» и нажимаем Enter☻☺☻
(цвета можно менять от: «a» до «f» и цифрами от «0» до «7» но только до запуска

%s%,1!»
set /a «s=%random% %% 714»
set «aw=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ae=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ar=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «at=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ay=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «au=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ai=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ao=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ap=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «aa=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «as=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ad=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «af=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ag=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ah=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «aj=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ak=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «al=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «az=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ax=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ac=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «av=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ab=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «an=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «am=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bq=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bw=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «be=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «br=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bt=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «by=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bu=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bi=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bo=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bp=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «ba=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bs=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bd=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bf=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bg=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bh=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bj=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bk=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bl=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bz=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bx=!alp:

%s%,1!»
set /a «s=%random% %% 714»
set «bc=!alp:

Как сделать матричный дождь в командной строке

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 44 человек(а).

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


pause

Приостанавливает обработку пакетной программы, отображая запрос, Press any key to continue . . .

Синтаксис

Параметры

Комментарии

Если нажать клавиши CTRL + C для завершения пакетной программы, появится Terminate batch job (Y/N)? следующее сообщение:. Если нажать клавишу Y (да) в ответ на это сообщение, пакетная программа завершает работу и управление возвращается операционной системе.

Команду Pause можно вставить перед разделом пакетного файла, который, возможно, не будет обрабатываться. Когда Pause приостанавливает обработку пакетной программы, можно нажать клавиши CTRL + C, а затем нажать клавишу Y , чтобы остановить пакетную программу.

Примеры

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

В этом примере все файлы на диске в диск A копируются в текущий каталог. После того как в сообщении появится запрос на добавление нового диска в дисковод а, команда Pause приостанавливает обработку, чтобы можно было изменить диски и нажать любую клавишу, чтобы возобновить обработку. Эта пакетная программа выполняется в бесконечном цикле — команда goto Begin отправляет интерпретатор команд в начальную метку пакетного файла.

Задержка времени (пауза, тайм-аут) в бат-файле

Вот, нашёл в Сети рабочий пример для устройства задержки времени
(пауза, тайм-аут) при выполнении команды в bat-файле:

:/>  Как избежать проблем при установке Windows 10 20H2

Работает в любой ОС Windows, аж бегом

Зачем нужна задержка (пауза, тайм-аут) при выполнении команды в bat-файле?

У всех – по-разному.
Лично мне она (пауза) понадобилась вот для чего:

– Взял простенький bat-файл для очистки временных папок и бросил его в АВТОЗАГРУЗКУ
Прикололся, типа – чтобы этот батничек чистил временные каталоги при запуске системы.
Текст батника вытащил из стандартного Total Commander-a:

cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul &cd/d C:\Windows\Prefetch &del *.pf 2>nul &cd/d C:\Windows\Temp&rd/s/q c:\windows\temp 2>nul

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

Досадно.
Однако, устройство паузы в 30 сек. решило всю проблему.
И система грузится, и папки темпов — чистятся.

Полный текст bat-файла стал теперь таким:

Прим. Лошади понятно, что изменив цифру 30 на своё значение,
можно получить другие величины паузы в секундах в bat-файле.

Начиная с VISTA, в операционных системах семейства Windows присутствует команда TIMEOUT. Эта команда принимает значение таймаута, равного фиксированному периоду времени ожидания (в секундах) до выполнения команды или ожидание до нажатия клавиши. Имеется также параметр, зaдающий игнорирование нажатий клавиш.

/T 50 Таймаут = 50 сек. Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд. Значение, равное -1 задает неограниченное время ожидания до нажатия клавиши. /NOBREAK Игнорировать нажатия клавиш, ждать указанное время. /? Отображение справки в командной строке.

TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1

Весь текст примера можно внести в bat-файл,
запустить и посмотреть, как это работает.
Впечатляет.

Рассмотрим основные варианты организации ожидания ( паузы ) в bat / cmd файлах.

Для решения этой задачи в операционных системах, начиная с VISTA, присутствует команда timeout. Так, для ожидания 10 секунд следует выполнить команду.

Если не использовать параметр /NOBREAK, то ожидание может быть прервано нажатием любой клавиши.

Поскольку эта задача вставала перед разработчиками задолго до появления этой утилиты, те, у которых операционная система младше, могут воспользоваться накопившемся опытом.
Для организации паузы есть специальная утилита, входящая в состав Resource Kit (Ресурскита).
Пакеты Microsoft Windows Deployment Kit и Windows Resource Kit бесплатно распространяется microsoft.com. Этот пакет содержит ряд полезных и. как бы так сказать. других утилит.

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

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

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

-n 1 — выполнить один запрос
-w 100000 — ждать ответа 100 секунд
(значение указывается в миллисекундах)
10.10.254.254 — IP адрес, который заведомо не существует в локальной сети (важно!), следовательно, никогда не ответит на ping т. е. событие не наступит.
>nul — перенаправление всего вывода команды ping в никуда.

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

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

Для любителей экзотики.
Можно вычислить время окончания интервала ожидания и занять чем-то несчастный процессор до наступления этого события. Как результат — пауза организована только средствами bat / cmd.
Привожу слегка исправленный пример, взятый с сайта http://www.oszone.net.

6,-3%%%100+%1 if %ftime% GEQ 60 set /a ftime-=60 :loop set ctime=%time:

6,-3% if /i %ftime% NEQ %ctime% goto :loop exit /b 0

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

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

Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь

Синтаксис

FOR %переменная IN (набор) DO команда [параметры]
  • %переменная – Однобуквенный подставляемый параметр.
  • (набор) – Определяет набор, состоящий из одного или нескольких файлов. Допускается использ. подстановочных знаков.
  • команда – Команда, которую следует выполнить для каждого файла.
  • параметры – Параметры и ключи для указанной команды.

Бесконечный цикл

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

Примеры бесконечного цикла

Пример бесконечного цикла 1:

for /l %x in (0,0,0) do echo «бесконечный цикл»

Пример бесконечного цикла 2:

for /l %x in (0,0,0) do curl http://domain.local-domain-zone/path/script.php

Преамбула

Цикл for производит выполнение указанной команды для каждого файла набора.

Документация

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

FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]
FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]

Набор раскрывается в последовательность чисел с заданными началом, концом и шагом приращения. Так, набор (1,1,5) раскрывается в (1 2 3 4 5), а набор (5,-1,1) – в (5 4 3 2 1)

FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры]
FOR /F ["ключи"] %переменная IN ("строка") DO команда [параметры]
FOR /F ["ключи"] %переменная IN ('команда') DO команда [параметры]

или, если использован параметр usebackq:

FOR /F ["ключи"] %переменная IN (набор-файлов) DO команда [параметры]
FOR /F ["ключи"] %переменная IN ('строка') DO команда [параметры]
FOR /F ["ключи"] %переменная IN (`команда`) DO команда [параметры]

Набор файлов содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивке его на отдельные строки текста и разборе каждой строки в ноль или более подстрок. Затем вызывается тело цикла for, при выполнении которого каждая найденная подстрока используется в качестве значения переменной. По умолчанию ключ /F выделяет из каждой строки каждого файла первую отделенную пробелами подстроку. Пустые строки в файле пропускаются. Необязательный параметр “ключи” служит для переопределения правил разбора по умолчанию. Он представляет собой заключенную в кавычки строку, содержащую одно или несколько ключевых слов для определения параметров разбора. Ключевые слова:

  • eol=c – знак начала комментария в конце строки (допускается задание только одного знака).
  • skip=n – число пропускаемых при обработке строк в начале файла.
  • delims=xxx – набор разделителей вместо используемых по умолчанию пробела и знака табуляции.
  • tokens=x,y,m-n – номера подстрок из каждой строки, передаваемые в тело цикла for для каждой итерации. При использовании этого ключа выделяются дополнительные имена переменных. Формат m-n представляет собой диапазон подстрок с номерами от m по n. Если последний знак в строке tokens= является звездочкой, создается дополнительная переменная, значением которой будет весь оставшийся текст в строке после разбора последней подстроки.
  • usebackq – применение новой семантики, при которой строка, заключенная в обратные кавычки, выполняется как команда, строка, заключенная в прямые одиночные кавычки, является строкой-литералом, а двойные кавычки могут использоваться для задания имен файлов в наборе.
FOR /F "eol=; tokens=2,3* delims=, " %i in (мойфайл.txt) do @echo %i %j %k

разбирает файл myfile.txt, пропуская все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла for, причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j – для третьей, а %k получает все оставшиеся подстроки после третьей. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Чтобы использовать двойные кавычки, необходимо использовать параметр usebackq, иначе двойные кавычки будут восприняты как определение строки-литерала для разбора.

Переменная %i явно объявлена в инструкции for, а переменные %j и %k объявляются неявно с помощью ключа tokens=. Ключ tokens= позволяет извлечь из одной строки файла до 26 подстрок, при условии, что это не приведет к попытке объявить переменную после буквы “z” или “Z”. Следует помнить, что имена переменных for явл. однобуквенными, с учетом регистра, глобальными, поэтому одновременно не может быть активно более 52 переменных.

:/>  Как найти папку local в windows 7

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

Наконец, команда FOR /F позволяет разобрать выходные данные другой команды. Для этого следует использовать в качестве параметра в скобках строку в обратных одиночных кавычках. Эта строка передается для выполнения дочернему обработчику команд CMD.EXE, а вывод этой команды сохраняется в памяти и разбирается так, как если бы это был файл. Следующий пример,

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i,

выведет перечень имен всех переменных среды в текущей среде.

Операции подстановки ссылок на переменные команды for также расширены. Допускается применение след. синтаксич. конструкций:

  •  %~I – из переменной %I удаляются обрамляющие кавычки (“)
  •  %~fI – переменная %I расширяется до полного имени файла
  •  %~dI – из переменной %I выделяется только имя диска
  •  %~pI – из переменной %I выделяется только путь к файлу
  •  %~nI – из переменной %I выделяется только имя файла
  •  %~xI – из переменной %I выделяется расширение имени файла
  •  %~sI – полученный путь содержит только короткие имена
  •  %~aI – переменная %I расширяется до атрибутов файла
  •  %~tI – переменная %I расширяется до даты /времени файла
  •  %~zI – переменная %I расширяется до размера файла
  •  %~$ПУТЬ:I – проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная %I заменяется на полное имя первого найденного файла. Если переменная ПУТЬ не определена или в результате поиска не найден ни один файл, то этот модификатор заменяется на пустую строку.

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

  • ~dpI – переменная I раскрывается в имя диска и путь
  • ~nxI – переменная I раскрывается в имя файла и его расширение
  • ~fsI – переменная I раскрывается в полный путь с короткими именами
  • ~dp$ПУТЬ:I – проводится поиск по каталогам, заданным в переменной среды ПУТЬ, и переменная I раскрывается в имя диска и путь к первому найденному файлу.
  • ~ftzaI – переменная I раскрывается в строку, подобную выдаваемой командой DIR

В приведенных выше примерах переменные I и ПУТЬ можно заменить на другие допустимые значения. Синтаксическая конструкция с символами ~ заканчивается допустимым именем переменной цикла for.

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

Использование утилит MTR и WinMTR для диагностики сети

Хочу рассказать о ещё одной очень полезной для диагностики сетевых проблем утилите – MTR(My traceroute). Она доступна во всех дистрибутивах Linux и сочетает в себе функционал двух перечисленных выше команд: Ping и Traceroute. Как Traceroute она выводит полную трассировку маршрута, который проходят сетевые пакеты до нужного узла. Кроме этого, в режиме реального времени, ведётся пинг до каждого из промежуточных узлов для определения время отклика информации о потерях пакетов на каждом шаге.
Запускается утилита MTR всё так же из терминала командой mtr. Пример:

Результат получился такой:

mtr утилита

Отправка тестовых пакетов будет идти бесконечно. Чтобы остановить диагностику — нажмите комбинацию клавиш Ctrl+C.

В моём примере результат показывает, что несмотря на наличие технического узла, который не отзывается, конечный сервер доступен, а все отправленные пакеты (см. колонку Snt) проходят до конечного узла. При этом процент потерь пакетов (см. колонку Loss) равен нулю. Всё отлично!

Используя аргумент -r при вводе команды MTR, Вы  получите результат диагностики виде отчета. Информация будет выведена в консоль Linux.

Трассировка WinMTR в Windows 11

winmtr как пользоваться

Нажимаем кнопку «Start» и запускаем диагностику. Спустя пару минут смотрим результат.

Что удобно, в этой утилите можно полученные результаты не только скопировать в буфер обмена, но и сразу экспортировать в текстовом или HTML-формате, чтобы потом отправить, например, в техподдержку провайдера.

Ссылки

Полезн. ссылки по теме for:

Перебор всех файлов в директории

for %i in (*) do echo %i
for /r %i in (*) do echo %i

Отображать только имена файлов (не полный путь) с их расширениями в текущем каталоге:

for %i in (*) do ( echo %~nxi )
for /r %i in (*) do ( echo %~nxi )

files in current dir:

for %f in (.\*) do @echo %f

subdirs in current dir:

for /D %s in (.\*) do @echo %s

files in current and all subdirs:

for /R %f in (.\*) do @echo %f

subdirs in current and all subdirs:

for /R /D %s in (.\*) do @echo %s

Команды tracert и traceroute

Трассировка — еще один хороший метод диагностики связности с удалённым сервером. Смысл тут в том, что во время трассировки тоже выполняется отправка пакетов тестовых данных до сервера. Главное отличие от пинга заключается в том, что трассировка дает возможность увидеть все промежуточные узлы, через которые проходят пакеты от Вашего ПК и до конечного хоста.

Трассировка маршрута в Windows 11

В операционной системе Windows 11, а так же практически всех предыдущих версиях – Windows 10 и старше — трассировка маршрута до сетевого ресурса выполняется с помощью интегрированной в командную оболочку утилиты tracert.

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

Так мы запустим трассировку от нашего ПК до сервера Яндекс. Пример:

tracert windows 11

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

Каждая строка в трассировке — это промежуточный узел ( как правило, маршрутизатор). Эти узлы принято называть прыжками или «хопами».

В моём случае от домашнего компьютера до сайта yandex.ru совершено 7 хопов, пройдя через 5 промежуточных узлов. На каждом из прыжков указывается время, за которое тестовый пакет дошёл до этого узла и вернулся обратно.

Теперь сделаем ещё одну трассировку — google.com. И вот тут в результатах у нас появится очень интересный момент:

tracert команда виндовс проверка

А именно строчка со «звёздочками». Что они означают? Многие новички этого пугаются и считают что это сетевая проблема. Это не совсем так! «Звёздочки» говорят о том, что на данном хопе ответ от сервера не получен. Проблема ли это? В этом случае — нет. Это технический узел и на пользовательские запросы он не отвечает.

Проблема была бы в том случае, если после какого-то из хопов все последующие хопы заканчивались бы звёздочками, а сама трассировка закончилась бы ничем. Вот в этом случае надо искать причину. Чаще всего она на том узле, который ответил последним. Но это не точно)))!

Как сделать трассировку в Linux

В операционных система семейства Linux тоже можно сделать трассировку. Правда там команда несколько отличается: это уже не tracert — трассировку выполняет утилита traceroute. Запускается она точно так же, как и пинг — из консоли.

В некоторых дистрибутивах утилита traceroute по умолчанию не установлена. Потому надо её установить. В Ubuntu b Debian это делается командой:
$ sudo apt install traceroute
В RHEL и CentOS — командой:
$ yum install traceroute -y

В остальном, использование данной утилиты ничем особо не отличается от того, как мы это делали в Windows 11. Для примера сделаем трассировку до Яндекса. Команда:

traceroute команда linux

Как можно заметить, результат трассировки маршрута выдаётся так же по хопам. Если какой-то узел не ответил — помечается «звёздочками».

Переменные

В пакетных файлах для команды for используется запись %%переменная, вместо %переменная, т.е. в файлах переменные начинаются с 2-ух знаков

%

, а в командной строке – с одного.

  • Имена переменных учитывают регистр букв – напр., %i отличается от %I.
  • Переменные должны быть односимвольными, по крайней мере для числового цикла.

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

Если включена расширенная обработка команд, поддерживаются след. доп. формы команды for:

FOR /D %переменная IN (набор) DO команда [параметры]

Если набор содержит подстановочные знаки, команда выполняется для всех подходящих имен каталогов, а не имён файлов.

Числовой цикл

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

Синтаксис числового цикла:

FOR /L %%parameter IN (start,step,end) DO command 

Пример числового цикла

FOR /L %p IN (1,1,10) DO echo %p