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

Frage Entwicklung Batch & Shell

Mitglied: marcushb

marcushb (Level 1) - Jetzt verbinden

02.12.2010 um 11:24 Uhr, 2749 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
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 9 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 9 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 12 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 17 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...