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

Wie Text Zeilenweise per Batch aus txt auslesen...?

Frage Entwicklung Batch & Shell

Mitglied: -eraz-

-eraz- (Level 1) - Jetzt verbinden

05.12.2007, aktualisiert 06.12.2007, 10172 Aufrufe, 2 Kommentare

Hallo Leute!

ich habe schon das Forum durchsucht aber irgendwie nicht das gefunden was ich brauche. Ich möchte mit einer Schleife Zeilenweise Text (Computernamen) auslesen und diese dann als Variable setzen damit ich damit arbeiten kann. Bisher habe ich folgendes versucht:
01.
FOR /F "skip=2 delims=" %%i IN (clients.txt) DO set client=%%i
das funktioniert zwar schonmal garnicht so schlecht, allerdings rattert die schleife bis zur letzten zeile durch und setzt mir den letzten wert dann als variable. Ich brauch aber zuerst die erste Zeile, dann möchte ich einen Befehl ausführen und wenn er den beendet hat soll er die zweite Zeile auslesen usw. Wie gehts richtig...?
Mitglied: bastla
05.12.2007 um 17:32 Uhr
Hallo -eraz- und willkommen im Forum!

Je nachdem, was Du alles vorhast, wird es vermutlich sinnvoll sein, ein Unterprogramm einzusetzen - etwa so:
01.
FOR /F "skip=2 delims=" %%i IN (clients.txt) DO call :ProcessClient "%%i" 
02.
goto :eof 
03.
 
04.
:ProcessClient 
05.
echo Client %~1 wird bearbeitet 
06.
... 
07.
... 
08.
goto :eof
Dieses Unterprogramm verhält sich im Prinzip wie ein neuer Batch, der mit dem Parameter "Client" aufgerufen wurde. Der Parameter wird dabei mit %1 (oder %~1, um die beim Aufruf zur Sicherheit gesetzten umgebenden Anführungszeichen zu entfernen) angesprochen.

Das Unterprogramm wird mit "goto :eof" beendet, was einem "Return" (zur aufrufenden Schleife) entspricht. Wenn (wie in meinem Beispiel) unterhalb des Unterprogramms kein weiterer Programmcode folgt, kannst Du dieses "gotoi :eof" auch weglassen.

Das "goto :eof" im Hauptprogramm beendet dann den Batch, damit das Unterprogramm nicht unbeabsichtigt nach dem Ende der Schleife nochmals durchlaufen wird.

Grüße
bastla
Bitte warten ..
Mitglied: -eraz-
06.12.2007 um 08:25 Uhr
Wow, funktioniert total gut! Danke!

Eine Kleinigkeit gäb's vielleicht noch... Kann man das auch irgendwie so machen das man nicht jedes mal Enter drücken muss damit die schleife zum nächsten Clients springt? Also das es halt einfach durchläuft...?

/edit
Sorry war mein Fehler... hab nur zum testen ne pause eingebaut... *gg* Danke nochmal!!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Per Batch ab einer bestimmten Stelle in einer .txt auslesen (1)

Frage von PeterPann zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...