Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Probleme mit Variablen und FOR Schleife

Frage Entwicklung Batch & Shell

Mitglied: maho1987

maho1987 (Level 1) - Jetzt verbinden

11.11.2010, aktualisiert 17:36 Uhr, 3989 Aufrufe, 5 Kommentare

Ich bin gerade für die Arbeit so eine Art IP-Scanner am bauen, jedoch habe ich Probleme mit Variablen in einer FOR Schleife.

Hallo Zusammen,

Zurzeit schreibe ich für die Arbeit so eine Art IP-Scanner, jedoch klappt dieser nicht ganz da die Batch in einer FOR \L Schleife nicht ins die Variablen %status% und %name% schreibt.
Sobald ich mir diese per ECHO ausgeben lasse, steht dort nichts drin. Könnt Ihr mir vlt helfen

01.
@echo off & setlocal EnableDelayedExpansion 
02.
 
03.
ECHO Bitte IP eingeben: ( XXX.XXX.XXX ) 
04.
SET /p ip= 
05.
 
06.
 
07.
ECHO Bitte Anzahl an Rechner eingeben: 
08.
SET /p anzahl= 
09.
 
10.
FOR /L %%N IN (1, 1, %anzahl%) DO ( 
11.
 
12.
PING -a %ip%.%%N > tmp_%ip%.%%N.txt 
13.
 
14.
FIND "TTL" < tmp_%ip%.%%N.txt && SET status=online 
15.
FIND "TTL" < tmp_%ip%.%%N.txt || SET status=offline 
16.
FIND "TTL" < tmp_%ip%.%%N.txt && for /f "tokens=2 delims= " %%i in ('findstr "mit" tmp_%ip%.%%N.txt') do SET nanme=%%i 
17.
 
18.
ECHO %ip%.%%N;%status%;%name% >> ip.txt 
19.
 
20.
21.
 
22.
pause
Mitglied: bastla
11.11.2010 um 18:34 Uhr
Hallo maho1987 und willkommen im Forum!

Du hast ja mit "setlocal EnableDelayedExpansion" schon gut begonnen - dann nur noch konsequent bleiben und die damit geschaffene Möglichkeit auch verwenden:
(ECHO %ip%.%%N;!status!;!name!)>>ip.txt
Die Klammern sollen übrigens nur das Ausgeben eines Leerzeichens nach dem Namen verhindern - wenn's nicht stört kannst Du sie auch weg lassen, bzw genügt in diesem Fall ziemlich sicher (Du wirst vermutlich keine Rechnernamen haben, die nur aus einer Ziffer bestehen) auch:
ECHO %ip%.%%N;!status!;!name!>>ip.txt
Grüße
bastla
Bitte warten ..
Mitglied: 60730
12.11.2010 um 00:04 Uhr
Servus und auch von mir ein willkommen..

Hallo zusammen; Codeblöcke; richtige Rubrik gefunden, ja ist denn schon wieder Weihnachten?

Ein/zwei/drei kleine Tipps:#

  • Zeile 3 & 4 kannst du zusammenfassen:
SET /p ip=Bitte IP eingeben: ( XXX.XXX.XXX )

  • Das Loch in Zeile 4/5 mit sowas füllen:
echo %Iip% |findstr "[1-9][1-9][1-9].[1-9][1-9][1-9].[1-9][1-9][1-9]\" && echo Eingabe scheint korrekt zu sein ||goto start
(das Sprungziel start muß dann natürlich dazu und wenn du mal ein 10.x.x. Netz abfragen willst - müßtest du das anpassen)

  • Zeile 6/7 siehe 3&4 obwohl das irreführend ist, denn es geht davon aus, das 1 nicht das GW ist und das jeder Rechner immer eine Folgeip bekommt und keine Lücken da sind.
SET /p anzahl=wieviele Adressen sollen durchsucht werden weit soll das Netz durchsucht werden?

  • Und auch diese freigewordene Zeile kannst du so sinnvoll füllen:
set /a anzahl=%anzahl% && echo Counter endet bei %anzahl% || echo den Wert %anzahl% akzeptiere ich nicht

Gruß
Bitte warten ..
Mitglied: bastla
12.11.2010 um 00:30 Uhr
@T-Mo
echo %Iip% |findstr "[1-9][1-9][1-9].[1-9][1-9][1-9].[1-9][1-9][1-9]\" && echo Eingabe scheint korrekt zu sein ||goto start
schränkt allerdings etwas stark ein (nur jeweils 3-stellige Werte ohne Nullen) - etwas weniger restriktiv (aber dafür tatsächlich mit Prüfung auf Trennung durch Punkte):
echo %ip% |findstr "[1-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*">nul && echo Eingabe scheint korrekt zu sein ||goto start
Oder so:
01.
set "OK=" 
02.
for /f "tokens=1-3 delims=." %%a in ("%ip%") do if not "%%c"=="" if %%a leq 223 if %%b leq 255 if %%c leq 255 set "OK=True" 
03.
if not defined OK goto :start
Grüße
bastla
Bitte warten ..
Mitglied: maho1987
12.11.2010 um 10:03 Uhr
Danke an Alle.
Mit den Änderungen funktioniert mein Tool endlich.
Werde das Forum weiterempfehlen und versuchen hier aktiv zu sein.
Bis dann mal
Bitte warten ..
Mitglied: 60730
12.11.2010 um 10:53 Uhr
[OT]
@ Bastla - das beweist wieder mal, du denkst um 0.30 weiter, als ich um 0.04
Die 0-9 wollte ich zwar auch ab der 2. ziffer der Oktette reinmachen, hatte aber einen FaulheitsC&Pfehler, aber so ist es viel hybscher
[/OT]

@ Maho: das ist schön, geben und nehmen

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Probleme mit Dateipfaden in for-Schleife (1)

Frage von Jonas1806 zum Thema Batch & Shell ...

Windows 7
gelöst Sind euch verstärkte Probleme bei Windows 7 Updates aufgefallen? (4)

Frage von RadioHam zum Thema Windows 7 ...

Cloud-Dienste
gelöst OwnCloud 8 Probleme mit Vorschaubildern auf Mobilgeräten (1)

Frage von zeroblue2005 zum Thema Cloud-Dienste ...

Windows 10
gelöst VPN Verbindung Probleme (6)

Frage von Yeter2 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...