2016-05-03 10 views
0

Ich habe ein Programm zum Ping-Computer, überprüfen Sie dort Registrierung und sagen Sie mir die Ergebnisse. Ich versuche jetzt, es zu skripten, so dass ich die IP-Adresse nicht nur den Host-Namen des Computers kennen muss. fand ich ein Skript, um mir die IP-off von einem HostnamenFür Datei-Schleife in einem für Datei-Loop-Batch-Datei

for /f "tokens=1,2 delims=[]" %%a in ('ping -4 %%a ^| find "Pinging"') do set ip=%%c >nul 

habe ich versucht, einfach das Einfügen in eine biger Schleife, die eine Datei verwendet ihm den Host-Namen zu geben.

for /f %%A in (%1) do (
    for /f "tokens=1,2 delims=[]" %%a in ('ping -4 %%a ^| find "Pinging"') do (
     set host=%%a 
     set ip=%%c 
     echo "." 
     echo %ip% %host% 
     pause 
     ) >>%2 
    ) 

ich auch es so versucht haben,

for /f %%a in (%1) do (
    set /p hostname=%%a 
    for /f "tokens=1,2 delims=[]" %%b in ('ping -4 %%a ^| find "Pinging"') do set ip=%%c >nul 
    echo %ipaddress% %hostname% 
) 

Bitte jede Hilfe auf diesem würde sehr geschätzt werden. Danke.

+2

Sie benötigen [verzögerte Expansion] (http://ss64.com/nt/delayedexpansion.html) – npocmaka

+2

warum nicht einfach 'echo %% c %% a' statt Variablen setzen? – Stephan

+2

Was erwarten Sie in Ihrem letzten Skript 'set/p %% a = hostname'? – aschipfl

Antwort

0

NACH MUTCH Headbanging

@echo off 
SETLOCAL EnableDelayedExpansion 
for /f %%A in (%1) do (
    for /f "tokens=1,2 delims=[]" %%a in ('ping /4 /n 1 %%A ^| findstr "Pinging"') do echo "%%A %%b" 
) 
Verwandte Themen