Top-Themen

Aktuelle Themen (A bis Z)

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

Teil aus Textfile auslesen und in neues Textfile speichern

Mitglied: marcushb

marcushb (Level 1) - Jetzt verbinden

02.12.2010 um 11:24 Uhr, 2765 Aufrufe, 7 Kommentare

Hallo liebes Forum,

ich bin auf der Suche nach einem kleinen Batch-Script für folgende Situation.

Ich lese via Script den Inhalt eines bestimmten FTP Verzeichnisses aus, und will aber ich brauche nicht den Inhalt der Subfolder.

Der Inhalt des Textfiles sieht wie folgt aus:


-rw-r----- 1 ftpxxxx ace 211495 Dec 2 07:21 049_pdf_20101201.zip

history:
total 80
-rw-r--r-- 1 ace ace 32636 Dec 1 15:45 049_1_i_20101201_759.txt
-rw-r--r-- 1 ace ace 4047 Dec 1 15:47 049_1_p_20101201_760.txt
-rw-r--r-- 1 ace ace 3061 Dec 1 15:19 DE1_CUST_20101201161904.XML


Ich möchte gerne alle Zeilen bis zur ersten Leerzeile auslesen und in ein neues TXT File schreiben.

Hat jemand zufällig eine IDee ?

Vielen Dank !

Gruß
Marcus
Mitglied: 60730
02.12.2010 um 12:08 Uhr
moin,

demo für den cmd Prompt:

for /f "tokens=2,*" %a in (laufwerk:\pfad\text.txt) do echo %a %b>>Laufwerk:\pfad\output.txt

  • laufwerk:\pfad\ natürlich an deine Werte anpassen
  • dito mit den .txt

"nur" macht er das haargenauso - wie du es beschrieben hast - auch aus total 80 wird 80

Falls das nicht so sein soll und total die Ausnahme wäre, wo die zeile mit t beginnt:
for /f "eol=t tokens=2,*" %a in (laufwerk:\pfad\text.txt) do echo %a %b>>Laufwerk:\pfad\output.txt
(jede Zeile, die mit t beginnt - wird ignoriert)

Im anderen Fall, dass nur Zeilen die "r w ace" haben - würde es so laufen:
for /f "tokens=2,*" %a in ('"findstr "r w ace" "laufwerk:\pfad\text.txt"') do echo %a %b>>Laufwerk:\pfad\output.txt

Um testen alles hinter und incl. >> mal weglassen.

Alles weitere
01.
for /?
in einer batch aus jedem einzelnen % ein doppeltes %% machen - sonst ist es so allein und auf einem Bein kann man nicht laufen


Gruß
Bitte warten ..
Mitglied: marcushb
02.12.2010 um 12:16 Uhr
Hi,

ich glaube da habe ich mich wohl etwas falsch ausgedrückt, ich möchte alles was über history steht auslesen und in ein neues File schreiben.Wenn ich dein Bsp. ausprobiere bekomme ich sozusagen "fast" alles in die neue Datei.

Gruß
Marcus
Bitte warten ..
Mitglied: Friemler
02.12.2010 um 12:46 Uhr
Hallo Marcus,

der folgende Code sollte Dein Problem lösen.
01.
@echo off 
02.
 
03.
setlocal enabledelayedexpansion 
04.
 
05.
set "OutputEnd=0" 
06.
 
07.
type NUL>"Laufwerk:\pfad\output.txt" 
08.
 
09.
for /f "tokens=1,* delims=:" %%k in ('findstr /n $ "laufwerk:\pfad\text.txt"') do ( 
10.
  if "%%l" equ "" set "OutputEnd=1" 
11.
  if !OutputEnd! equ 0 echo %%l>>"Laufwerk:\pfad\output.txt" 
12.
13.
 
14.
endlocal
FINDSTR sucht nach Zeilen, die ein Zeilenende ($) enthalten (findet also alle Zeilen) und schreibt die Zeilennummern (wegen der Option /n) mit einem nachfolgenden Doppelpunkt vor den Zeileninhalt. FOR behandelt diesen Doppelpunkt als Trennzeichen, in %%k steht die Zeilennummer, in %%l der Zeileninhalt. Wenn %%l nichts enthält (Leerzeile gefunden), wird die Variable OutputEnd auf 1 gesetzt und somit die Ausgabe der nachfolgenden Zeilen in Skript-Zeile 11 unterbunden.

Gruß
Friemler
Bitte warten ..
Mitglied: Biber
02.12.2010 um 12:46 Uhr
Moin marcushb,

zum Verarbeiten einer bestimmten (der ersten, der letzten, der 13ten..) Zeile einer Textdatei mit FOR/F-Anweisungen findest du einige Beispiele im Bereich Batch & Shell mit Hilfe der Suchfunktion.
Du kannst den ...DO..-Teil etwas aufbrezeln mit

FOR /F ... %i in (..) DO if not defined x (echo %i>neueDatei.txt) & set "x=leberkäse"

Grüße
Biber
Bitte warten ..
Mitglied: bastla
02.12.2010 um 16:47 Uhr
@Friemler
FINDSTR sucht nach Zeilen, die ein Zeilenende ($) enthalten (findet also alle Zeilen)
... mit ev der Ausnahme der letzen Zeile (falls diese eben nicht mit einem CR und/oder LF endet) - da aber alle Zeilen jedenfalls einen Anfang haben:
for /f "tokens=1,* delims=:" %%k in ('findstr /n "^" "laufwerk:\pfad\text.txt"') do (
Anstelle der Zuweisung von "0" bzw "1" zur Variablen %OutputEnd% tendiere ich eher dazu, sie im "0"-Fall per
set "OutputEnd="
zu löschen, da sie so ohne "delayedExpansion" einfach per "if defined OutputEnd" abgefragt werden kann.

Grüße
bastla
Bitte warten ..
Mitglied: Friemler
02.12.2010 um 16:58 Uhr
@bastla
... mit ev der Ausnahme der letzen Zeile (falls diese eben nicht mit einem CR und/oder LF endet)
Stimmt, Vorsicht ist die Mutter der Porzellankiste. In diesem Fall aber vernachlässigbar, da der TO ja sowieso nur bis zur ersten Leerzeile ausgeben will. Außerdem ist die Textdatei ein Verzeichnislisting, das von einem Skript generiert wurde. Man kann also erwarten, dass auch die letzte Zeile mit CR/LF endet.

[Edit]
Da schreibt man eine Antwort und schon hat der Kerl noch eine sinnvolle Verbesserung gefunden ! Ich meine die Sache mit dem Löschen von OutputEnd, statt die Variable auf 0 zu setzen.

Gruß
Friemler
Bitte warten ..
Mitglied: bastla
02.12.2010 um 17:38 Uhr
@Friemler
Du erklärst so schön, was Dein Batch macht - da wollte ich auch einmal etwas (und dann noch ein weiteres Etwas ) beitragen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Einen bestimmten Teil einer Textdatei auslesen

gelöst Frage von Focus1610Batch & Shell5 Kommentare

Hallo, ich brauche mal einen Denkanstoß. Ich bekomme per FTP von einem Kunden täglich mehrere Textdateien. Diese haben unterschiudlich ...

Batch & Shell

Batch datei.txt teile auslesen

gelöst Frage von yellyBirdBatch & Shell2 Kommentare

Hallo zusammen, ich bin realtiv neu hier und hätte eine kleine Frage: ich möchte mit einem batchfile aus einer ...

Batch & Shell

Bestimmte Teile einer TXT Datei per Batch in eine neue CSV speichern

Frage von WebtixBatch & Shell8 Kommentare

Hallo zusammen, ich bekomme von einem externen Dienstleister in unregelmäßigen Abständen TXT Files mit verschiedenen Werten. Diese sind immer ...

Batch & Shell

Text aus einem Textfile auslesen und in Zeile 1 hinein kopieren

Frage von IronangelBatch & Shell2 Kommentare

Hallo zusammen, dies ist mein erster Beitrag. Ich hoffe hier Hilfe zu finden. Ich benötige einen Befehl für ein ...

Neue Wissensbeiträge
Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 4 StundenSicherheit

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 14 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 1 TagErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 1 TagWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server36 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgbornMicrosoft17 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...