Je souhaite imprimer uniquement une certaine ligne de la sortie d’une commande. Prenons l’exemple de la commande ipconfig
. Cela renvoie beaucoup de lignes.
Windows IP Configuration Wireless LAN adapter Wireless Network Connection: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : ab80::456d:123e:5ae5:9ab6%15 IPv4 Address. . . . . . . . . . . : 192.168.1.33 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 Ethernet adapter Local Area Connection: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . :
Je veux juste imprimer la 11ème ligne.
J’ai essayé ce qui suit
FOR /F "skip=10 delims=" %G IN ('IPCONFIG') DO @ECHO %G
Cela ne saute que les 10 premières lignes et imprime le rest des lignes.
Default Gateway . . . . . . . . . : 192.168.1.1 Ethernet adapter Local Area Connection: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . :
Comment imprimer uniquement la 11ème ligne?
Il suffit de quitter la boucle
FOR /F "skip=10 delims=" %G IN ('IPCONFIG') DO @ECHO %G & goto done :done
édité Obtenir la 11ème ligne dans la sortie d’une commande à partir d’une seule ligne de commande
for /f "tokens=1,* delims=:" %a in ('ipconfig^|findstr /n "^"^|findstr /l /b /c:"11:"') do echo %b
Exécutez la commande, numérotez la sortie, récupérez la ligne requirejse, divisez le nombre initial et répétez le rest
set "x=1" & for /f "skip=10 delims=" %a in ('ipconfig') do @(if defined x (set "x=" & echo %a))
Définir une variable de drapeau, exécuter la commande, ignorer les 10 premières lignes et pour chaque ligne si le drapeau est défini, nettoyer le drapeau et faire écho à la ligne
Puis-je exécuter cela en une seule commande? Je veux dire pas par un fichier de commandes.
ipconfig |find "Default Gateway"