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
Kommentar vom Moderator Biber am 25.05.2010 um 16:25:00 Uhr
Verschoben nach "Batch & Shell" von "Entwicklung".
GELÖST

Per Batch 1. Zeile einer .txt auf bestimmten PC auslesen

Frage Entwicklung Batch & Shell

Mitglied: Scratch

Scratch (Level 1) - Jetzt verbinden

25.05.2010, aktualisiert 16:25 Uhr, 6005 Aufrufe, 6 Kommentare

Moin, moin,

ich habe folgendes Problemchen: Ich möchte die erste Zeile einer bestimmten .txt-Datei im Pfad c:\Programme\ProgrammX\text.txt auslesen.
Ich scheitere allerdings schon bei der 1. Zeile:

01.
for /F "delims=;" %%i in (C:\Programme\fawbsh\LOGMSG.TXT) do echo %%i>>ausgabe.txt
liest leider die ganze File ein.

Ist allerdings das kleinere Problem. Das eigentliche Problem ist, dass das nicht lokal auf meinem Rechner ausgeführt werden soll, sondern auf
bestimmten Rechnern bei uns in der Firma. Irgendwo habe ich mal gelesen, dass man keine doppelte IF-Anweisung, also in sich verschachtelt,
durchführen kann.

Mit
01.
For /F %%a in (liste.txt) DO (
und dann die anweisung von oben in den klammern funktioniert es leider nicht.

Wie kann ich mein Problemchen lösen?
Mitglied: callback
25.05.2010 um 15:41 Uhr
ähm entschuldigung, wenn die frage jetzt ein bischen blöd klingt, aber du redest was von verschachtelten if-anweisungen, und schreibst dann in deinem code ne for-schleife, ich blick da grad nicht durch was du eigentlich willst.

Mit freundlichen Grüßen

CALLBACK
Bitte warten ..
Mitglied: 60730
25.05.2010 um 15:46 Uhr
Salü,

01.
findstr /n "." "C:\Programme\fawbsh\LOGMSG.TXT" |findstr /b /c "1:">ausgabe.txt
Wie das genau funktioniert?

Einfach mal findstr /? aufrufen und sich den Sinn von /C /B /N ansehen.
Das erste "." ist der sonst übliche Platzhalter (*)

Gruß

edit:
Irgendwo habe ich mal gelesen, dass man keine doppelte IF-Anweisung, also in sich verschachtelt, durchführen kann.

das ist quark...
Ein ganz simples Beispiel...

01.
if exist c:\ echo c ist da 
02.
if exist c:\ if exist d:\ echo c und d sind da
Bitte warten ..
Mitglied: bastla
25.05.2010 um 16:09 Uhr
Hallo Scratch!

Ich sehe auch noch keine Notwendigkeit für auch nur ein "if" - aber vermutlich ist ohnehin das Verschachteln von "for"-Schleifen gemeint, was ganz nebenbei auch kein Problem ist ...

... aber zur eigentlichen Frage: Am einfachsten kommst Du zur ersten Zeile einer Datei über:
set /p ErsteZeile=<Datei.txt
[Edit]
Wenn es tatsächlich darum gehen sollte, aus mehreren Dateien jeweils nur die erste Zeile in eine neue Datei zu schreiben, würde ich das allerdings eher so versuchen:
01.
for /f %%a in (liste.txt) do ( 
02.
    set "Erste=True"     
03.
    for /f "usebackq delims=" %%i in ("%%a") do ( 
04.
        if defined Erste >>ausgabe.txt echo %%i 
05.
        set "Erste=" 
06.
07.
)
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Scratch
25.05.2010 um 16:46 Uhr
Peinlich Ja, geschrieben IF-Anweisung, gemeint For-Schleife Ich danke euch erstmal. kanns allerdings erst morgen ausprobieren. Werde dann aber berichten, ob ich Erfolg hatte oder nicht.
Bitte warten ..
Mitglied: Scratch
26.05.2010 um 11:51 Uhr
So. Entweder ich stehe mal wieder auf dem Schlauch, oder da stimmt irgendwas nicht. Kommt aufs gleiche raus
01.
for /f %%a in (liste.txt) do ( 
02.
set "Erste=True" 
03.
for /f "usebackq delims=" %%i in (\\%%a\c$\Programme\ProgrammX\logdatei.txt) do ( 
04.
if defined Erste echo %%a %%i>>ausgabe.txt  
05.
set "Erste=" 
06.
07.
)
Warum genau definierst du eigentlich die Variable?
In meiner Liste sthen jetzt 2 Computernamen drin. In meine ausgabe.txt schreibt er aber nur den ersten in der Datei und dahinter dann die erste Zeile meiner auszulesenden Logdatei.
Warum arbeitet er die Liste nicht weiter ab?

Edit: Hat sich erledigt, mein Fehler. Ich hatte einen ungüötigen Computernamen in der Liste. Vielen Dank, klappt jetzt alles so, wie es soll!
Bitte warten ..
Mitglied: bastla
26.05.2010 um 12:35 Uhr
Hallo Scratch!
Warum genau definierst du eigentlich die Variable?
Eine "for /f"-Schleife geht immer alle Zeilen der Datei durch - um nur die erste auch in die Ausgabedatei zu schreiben, verwende ich die Variable %Erste% als Schalter (der sich am einfachsten hinsichtlich Existenz abfragen lässt - es ist daher egal, welcher Text in Zeile 2 zugewiesen wird; wichtig ist nur, dass in Zeile 5 die Variable für diese Datei wieder gelöscht wird, sodass eben nur die eine Zeile geschrieben wird).

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

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

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

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

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...