Рейтинг:3

echo %time% повторяющиеся выходные данные

флаг ch

У меня есть команда, которая добавляет метку времени в начале и в конце (echo %time% & #другая команда# & echo %time%). Однако %время% будет одинаковым, независимо от того, сколько времени потребовалось для выполнения команды.

пример вывода:

Время начала: 19:48:31.75

Пинг google.com [2a00:1450:400e:80c::200e] с 32 байтами данных:
Ответ от 2a00:1450:400e:80c::200e: время=13мс
Ответ от 2a00:1450:400e:80c::200e: время=13мс
Ответ от 2a00:1450:400e:80c::200e: время=9мс
Ответ от 2a00:1450:400e:80c::200e: время=10мс

Статистика пинга для 2a00:1450:400e:80c::200e:
    Пакеты: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время прохождения туда и обратно в миллисекундах:
    Минимум = 9 мс, Максимум = 13 мс, Среднее = 11 мс

Время окончания: 19:48:31.76

Есть ли способ сделать эту работу, все еще в пределах одной строки?

Спасибо

djdomi avatar
флаг za
выполнение команды и команды происходит только в случае истинности, почему бы не использовать точку с запятой; он выполняется независимо
флаг ch
@djdomi я пробовал это, но писал как `echo %time%; пропинговать google.com; эхо %time%` или даже с кавычками, это не работает. Он видит точку с запятой как часть команды, а не закрывает ее.
флаг in
@djdomi `;` не работает в cmd, один `&` продолжает выполнение, а `&&` не работает
флаг jp
@MichaelHampton: разница составляет 0,01 секунды, тогда как она должна быть более 4 секунд.
Рейтинг:2
флаг in

CMD расширяет переменные и затем выполняет каждую строку. Что означает, что

эхо %time% и ping 127.0.0.1 и эхо %time%

сначала расширяется, а затем выполняется

Существует также «отложенное расширение» Вот пример использования, и даже более подробно Однако это работает только в файле cmd, а не в командной строке.

setlocal ENABLEDELAYEDEXPANSION
эхо !время! & ping 127.0.0.1 & echo !time!

Продолжить поиск возможно, cmd/V может быть использован:

cmd /V /C "echo %time% & ping 127.0.0.1 & echo !time!"

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

It Wasn't Me avatar
флаг cn
*[... и еще подробнее](https://superuser.com/questions/1569594/how-does-delayed-expansion-works-in-batch-script)* Мне понравилась ссылка на поддержку.... d:)
It Wasn't Me avatar
флаг cn
Сейчас я на своем Mac, так что нет возможности проверить, но. возможно, **`call`** тоже может это сделать: `echo %time% & ping 127.0.0.1 & call echo %time%`...
флаг in
@ Это не сработает, поскольку переменные также оцениваются первыми, у вас должно быть отложенное расширение, если вы запускаете его в той же строке (или блокирует `()`)
It Wasn't Me avatar
флаг cn
для этого я пишу *возможно*

Ответить или комментировать

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