Редактировать
Используйте приглашение set /p для вывода текста без добавления cr /lf, как всегда делает echo. Так:
set /P =I love you<Nul|clip
не добавит cr/lf
Захват / анализ выходных данных команды
Предположим, вы хотите получить имя хоста из этого вывода ping:
> ping -4 -n 1 -a 127.0.0.1
Pinging Matar [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Эта партия
For /f "tokens=2delims=[ " %%A in (
'ping -n 1 -a 127.0.0.1^|find "["'
) do Echo %%A
Вернусь
Matar
Этот пакет сохранит все непустые выходные строки в псевдомассив var и выведет список переменных
@Echo off & Setlocal EnableDelayedExpansion
Set Cnt=100
For /f "delims=" %%A in ('Ping -4 -n 1 -a 127.0.0.1') Do (
Set /A Cnt+=1
Set a[!Cnt:~-2!]=%%A
)
Set a[
Выход
a[01]=Ping wird ausgeführt für Matar [127.0.0.1] mit 32 Bytes Daten:
a[02]=Antwort von 127.0.0.1: Bytes=32 Zeit<1ms TTL=128
a[03]=Ping-Statistik für 127.0.0.1:
a[04]= Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0
a[05]= (0% Verlust),
a[06]=Ca. Zeitangaben in Millisek.:
a[07]= Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms