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

komma separierte textdatei per for-next schleife auslesen

Frage Entwicklung Batch & Shell

Mitglied: dbernsee

dbernsee (Level 1) - Jetzt verbinden

09.07.2008, aktualisiert 16.07.2008, 7374 Aufrufe, 4 Kommentare

Hallo!

Ich habe eine server.txt datei mit folgendem Inhalt: server1,server2,server3...usw diese würde ich gern auslesen ! (...um der frage vorwegzu greifen JA die datei muss genauso aufgebaut sein!)

mir ist klar das wenn die Datei wie folgt aussehen würde alles palletti wäre:

server1<-CRLF
server2
server3
usw.

zum testen habe ich folgendes probiert...was natürlich auch wunderbar funktioniert...

FOR /F "tokens=1-3 delims=," %a IN (c:\batch\server.txt) DO echo %a %b %c

...das ist aber nicht das was ich möchte...die for schleife sollte meine text datei so auslesen das ich als wert %%a jeden server nacheinander ansprechen kann !

mein nächster gedanke war ..evtl. kann ich mit einem tool (zb. sed oder gsar) die kommas durch zeilenumbrüche erstzen lassen !?

...aber mit den zeilenumbrüchen in einer batch ist das ja soone sache !!! habe im intenet nichts gefunden was da wirklich geht!!!

zb. so :

FOR /F "tokens=1" %a IN ('gsar -f, -r?? server.txt') DO echo %a

aber evtl. hat ja jemand von euch noch eine ganz andere idee !?

Mit freundlichen Grüßen
D.Bernsee
Mitglied: Biber
09.07.2008 um 20:50 Uhr
Moin dbernsee,

willkommen im Forum.

Wenn Du die Werte partout in eine Ein-Server-pro-Zeile-Liste schreiben möchtest, dann kannst Du es so machen:
01.
for /f "delims=, tokens=1-3" %a in (server.txt) do @((echo %a) &(echo %b) &@(echo %c))
...vom CMD-Prompt aus. Und das Ganze ggf. in eine neue Datei (mit ">"9 oder eine vorhandene (mit ">>") umleiten.

Andererseits: Mach es doch einfach mit einer zeilenweisen Abarbeitung je 3 Server nacheinander (wenn die halt so in der Datei stehen),

Batch:
01.
@echo off & setlocal 
02.
for /f "delims=, tokens=1-3" %%a in (server.txt) do ( 
03.
     call :machwatmit %%a 
04.
     call :machwatmit %%b 
05.
     call :machwatmit %%c 
06.
07.
goto :eof 
08.
 
09.
:machwatmit param1 ist der Servername 
10.
echo jetzt wird Server %1 bearbeitet... 
11.
echo bla... 
12.
goto :eof
Grüße
Biber
P.S. Hier im Forum ### es vielleicht nicht, aber es funktioniert.
Bitte warten ..
Mitglied: dbernsee
15.07.2008 um 15:17 Uhr
Hallo Biber,

danke für die schnelle Antwort...ich war leider nicht im Lande um sofort zu reagieren! Tja eigentlich hatte ich ja bereits so eine ähnliche Lösung
...denn das hier "FOR /F "tokens=1-3 delims=," %a IN (c:\batch\server.txt) DO echo %a %b %c" funktioniert ja wunderbar !!! Ist aber wie gesagt nicht das was ich möchte ...die server.txt enthält nämlich nicht nur 3 maschinen sondern 30+ und mit der oben genannten Methode habe ich ab 29 bzw. 26 (ohne umlaute) ein Problem! Außerdem wäre die Schleife dann elendslang und unübersichtlich! Ich benutze die Serverliste noch in einer anderen batch bzw. mit einem tool welches leider die bekannte Schreibweise (server1,server2...) voraussetzt...sonst hätte ich die liste schon längst händisch' umformatiert!!! Das Format der Liste ist mir letztendlich wurscht ...den echo in meiner schleife habe ich nur als beispiel eingefügt... im original steht dort ein tool namens uptime (zeigt mir die server uptime an!!!)

meine 1te batch...
IST Stand (f u n z t):
FOR %%A IN (server1,server2,server3,...) DO uptime %%A>>c:\batch\server_uptime.log

SOLL Stand (f u n z t nicht):
FOR /F "tokens=???" %%A IN (server.txt) DO uptime %%A>>c:\batch\server_uptime.log


und meine 2te batch schaut so aus...

for /f "tokens=3 delims=: " %%a in ('fping -H %wdir%\server.txt -n1 -l^|find "Reply"') do (
for /f "tokens=2" %%b in ('fping %%a -a -n1^|find "Pinging"') do (
if not exist \\%%a\admin$ echo Can't access Admin Share on %%b !!!>>%wdir%\admin_share.log
)
)

den 2ten schleifen durchgang benötige ich für die (rück)übersetzung von ip auf hostname !

ich möchte nur noch eine server liste pflegen ...deshalb die umstellung der 1ten batch !!! und am liebsten würde ich die server liste abfragen ohne ein weiteres output file zu erzeugen !!!

Mit freundlichen Grüßen
db
Bitte warten ..
Mitglied: bastla
15.07.2008 um 18:11 Uhr
Hallo dbernsee!

Batch 1 sollte eigentlich so gehen:
01.
for /f "delims=" %%i in (server.txt) do for %%A in (%%i) do uptime %%A>>c:\batch\server_uptime.log
Grüße
bastla
Bitte warten ..
Mitglied: dbernsee
16.07.2008 um 08:02 Uhr
Moin Moin!

Krass... immer wenn ich gerade denke ich kenn' mich ganz gut in NT-Batch aus ...kommt sowas !!!

Supi 1000 Dank an Superbrain "bastla" !!!

...wenn Du mir jetzt noch die Schleife erklärst bin ich auch schon zufrieden !

...nein warte ich versuch's selbst mal...
...du gibst ja bei der ersten schleife keinen trenner und nix an ...und wir arbeiten dort mit der variable %%i (d.h. %%i stellt in dem moment den kompletten Inhalt der server.txt dar ...richtig?) ...dann wird eine 2te schleife dran gehängt und....ahh mir dämmerts!!!! Coool ....echt nicht schlecht...!

...also falls ich's noch nicht erwähnt hatte ihr jung's von administrator.de habt's echt drauf !!!

gruß
db

p.s.: wenn die for schleife ohne /f auch befehle ausführen könnte hätte man's ja theoretisch auch über nen type auslesen lassen können !!! so z.b. FOR %A IN ('type server.txt') DO uptime %A ....

geht aber eben nicht weil dafür wie gesagt der parameter /f gesetzt sein muss !!!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Google Android
Textdatei auf SD Karte auslesen funktioniert nicht (Oneplus One) (4)

Frage von lordzwieback zum Thema Google Android ...

Batch & Shell
gelöst Seltsames Verhalten bei Errorlevel abfrage in FOR DO Schleife (1)

Frage von Kalma73 zum Thema Batch & Shell ...

Microsoft Office
Internext explorer about:blank auslesen, schleife bis gelanden (1)

Frage von thomas1972 zum Thema Microsoft Office ...

Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...