У меня есть переменная (% ms%), которая дает результат пинга, такого как 0ms, 134ms, 1828ms, ect.Как удалить буквы из переменной?
В основном я хочу удалить «ms» конца переменной.
У меня есть переменная (% ms%), которая дает результат пинга, такого как 0ms, 134ms, 1828ms, ect.Как удалить буквы из переменной?
В основном я хочу удалить «ms» конца переменной.
Вы можете удалить последние N символы из переменных с помощью пакетной переменной подстроки синтаксиса %var:~,-n%
, что означает «расширение вара с начала строки на N символы конца минус».
D:\>echo %ms%
1280ms
D:\>echo %ms:~,-2%
1280
Легче всего было бы:
@echo off
set "ms=19ms"
set "ms=%ms:ms=%"
echo %ms%
pause
Синтаксис этого set "result=%oldvariable:stringToFind=stringToReplace%"
Для получения дополнительной информации об этом, смотрите here
Просто побочный комментарий - вы оказываете плохую услугу людям, которые пытаются отладить свои сценарии, когда вы поощряете их подавлять всю отладочную информацию в первой строке сценария. –
@RyanBemrose, хотя вы правы в том, что '@echo off' не пригодится при отладке, общепринятой практикой является поставить ее в верхней части скриптов в ответах, поэтому пример дает нормальный ожидаемый вывод без ненужного« нежелательного »кода, вывод". Например, см. [Последний ответ на пакетный вопрос с пакетным скриптом в нем] (http://stackoverflow.com/a/35162954/5022761) –
Что провоцирующий вопрос? Если вы хотите выполнить ping-хосты и получить информацию о результатах, используйте PowerShell («Test-Connection») вместо того, чтобы пытаться разбирать строки в пакетном файле. –
Посмотрите на 'set /?', Который буквально перечисляет эту точную ситуацию: * '% PATH: ~ 0, -2%' будет извлекать все, кроме последних двух символов переменной PATH. * –