Modifica
Utilizzare il prompt set / p per generare il testo senza aggiungere cr / lf come fa sempre l'eco. Così:
set /P =I love you<Nul|clip
non aggiungerà il cr / lf
Cattura / analizza l'output di un comando
Supponiamo di voler ottenere il nome host da questo output 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
Questo lotto
For /f "tokens=2delims=[ " %%A in (
'ping -n 1 -a 127.0.0.1^|find "["'
) do Echo %%A
Tornerà
Matar
Questo batch memorizzerà tutte le righe di output non vuote in una pseudo matrice var ed elencherà le variabili
@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[
Produzione
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
echo **
per simulare la mia domanda.