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
GELÖST

Zeilen aus TXT Datei auslesen und in neue einfügen

Frage Entwicklung Batch & Shell

Mitglied: killinator007

killinator007 (Level 1) - Jetzt verbinden

18.11.2010 um 16:18 Uhr, 5370 Aufrufe, 10 Kommentare

Hallo Zusammen,

ich habe eine TXT Datei mit vielen hundert Zeilen. Jetzt soll mir im optimalfall eine Batchdatei jede einzelne Zeile dieser TXT Datei in eine neue TXT schreiben.

Mein Problem ist nur, es gibt hier ähnliche Lösungsansätzte mit For und findstr nur kann ich
mir daraus nichts zusammenreimen. Wenn jemand von euch vielleicht kurz Zeit findet und mir eine solche
Batch zeigt bzw. wie eine solche mit For und findstr in meinem Fall aufgebaut wäre?

folgendes hab ich mir schon zusammengecopyundpastet

for /f "tokens=1,2 delims=:" %%i in ('findstr /n "." importmanuell.txt') do @for /f %%x in ('set /a %%i %%') do @if %%x==0 %j>>new.txt"

Danke + Gruß
Mitglied: bastla
18.11.2010 um 18:52 Uhr
Hallo killinator007!
Jetzt soll mir im optimalfall eine Batchdatei jede einzelne Zeile dieser TXT Datei in eine neue TXT schreiben.
Liest sich zunächst wie die Beschreibung eines "copy" ...

Wenn ich Deinen Batchansatz allerdings richtig interpretiere, war das doch eher so gemeint, dass pro Zeile (Leerzeilen ausgenommen) eine neue Datei erstellt werden soll - im (hinsichtlich der Benennung der neuen Dateien) einfachsten Fall daher:
for /f "tokens=1* delims=:" %%i in ('findstr /v "^$" importmanuell.txt^|findstr /n "^"') do >%%i.txt echo %%j
Grüße
bastla
Bitte warten ..
Mitglied: micneu
19.11.2010 um 18:55 Uhr
wie soll der dateiname jerder neu erstellten datei sein?

gruß michael
Bitte warten ..
Mitglied: micneu
19.11.2010 um 19:16 Uhr
habe ein powershellscript version erstellt.

01.
#   ************************************************************** 
02.
#   1fileToAnyFile 
03.
04.
#    einmal auf der powershell ausgeführt werden 
05.
#     "Set-ExecutionPolicy Unrestricted" 
06.
#   ************************************************************** 
07.
#     
08.
#   ************************************************************** 
09.
#   * Erstellt M.N. - POWERSHELL / Entwicklung   19.11.2010      * 
10.
#   *  
11.
#   ************************************************************** 
12.
 
13.
$ErrorActionPreference = 'SilentlyContinue' 
14.
$QUELLE = "c:\Temp" 
15.
$EXTENSION = "*.tif" 
16.
$ZIEL = "C:\Temp" 
17.
$FILE = "logfile2.txt" 
18.
$ZAEHLER = 1 
19.
$TEXT = Get-Content $QUELLE\$FILE 
20.
foreach ($i in $TEXT) {     
21.
    echo "$ZAEHLER : $i" 
22.
    $i > $ZIEL\$ZAEHLER.txt 
23.
    $ZAEHLER = $ZAEHLER+1     
24.
    }
die dateien habe ich einfach nur durchnummeriert

gruß michael
Bitte warten ..
Mitglied: meinzelmax
25.06.2011 um 18:53 Uhr
Zitat von bastla:
for /f "tokens=1* delims=:" %%i in ('findstr /v "^$" 
> importmanuell.txt^|findstr /n "^"') do >%%i.txt echo %%j 
> 

Der Code funktioniert bei mir sehr gut als Batch, allerdings würde ich gern die Dateinamen abhängig von einem bestimmten Zeileninhalt machen. Zum Beispiel:

Inhalt der Ursprugngsbatch.txt:
8354203747293620173/Erster.Text.temp
72629ß1897826322032/Zweiter-Text.temp
0246834072309222044/3ter-oder100er-text.temp

nun kommt die der wunderbare code zum einsatz (vielen dank schonmal dafür!!!): for /f "tokens=1* delims=:" %%i in ('findstr /v "^$" Ursprugngsbatch.txt^|findstr /n "^"') do >%%i.txt echo %%j

der dateiinhalt ist für mich passend:

Inhalt der 1.txt:
8354203747293620173/Erster.Text.temp

usw.

aber ich brauche den entsprechenden dateinamen dazu:
Erster.Text.txt

also jeweils die Zeichenfolge zwischen "/" und ".temp" aus der jeweiligen Textdatei.

wenn das irgendwie möglich sein sollte, wäre ich sehr dankbar für einen tip. ich bin anfänger auf diesem gebiet und google konnte mir bisher leider noch nicht weiterhelfen
Bitte warten ..
Mitglied: bastla
25.06.2011 um 20:14 Uhr
Hallo meinzelmax und willkommen im Forum!

Soferne alle Deine Zeilen nach dem selben Schema zusammengesetzt sind (es also jeweils genau ein Trennzeichen "/" und einen wegzulassenden Teil ".temp" am Ende gibt), sollte das (ungetestet) so gehen:
for /f "usebackq tokens=1-2 delims=/" %%i in ("D:\Ein Ordner\Ursprugngsbatch.txt") do >%%~nj.txt echo %%i/%%j
Kurze Erklärung:
Es werden alle Zeilen der "Ursprungsbatch.txt" anhand des Trennzeichens "/" aufgeteilt, sodass die Variable %%i den Teil vor dem ersten Trennzeichen (=token #1) und %%j jenen zwischen erstem und zweitem (das es aber nicht geben sollte) Trennzeichen (=token #2) enthält.

Mit der Schreibweise ("%%~nj") wird %%j als Dateipfad betrachtet und nur der reine Namensanteil isoliert (siehe dazu "for /?") - es wird also alles ab dem letzten "." (= Dateityp) weggelassen.

Anhand dieses Namens wird im aktuellen Ordner (Du könntest aber natürlich auch einen Pfad davor angeben, also etwa >"D:\Ein anderer Ordner\%%~nj" schreiben) eine entsprechend benannte Datei erstellt, in welche beide Teile der Zeile samt Trennzeichen (daher %%i/%%j) geschrieben werden.

Grüße
bastla
Bitte warten ..
Mitglied: meinzelmax
26.06.2011 um 00:18 Uhr
hallo bastla,

vielen dank erstmal. das klapp gut. wie du aber geschrieben hast, darf nur ein "/" enthalten sein. bei einigen datensätzen ist das jedoch nicht so, wie ich grad festgestellt habe. es gibt zum manchmal sogar 5 oder 6 stück, sorry das ist mir vorhin leider entgangen.
trotzdem vielen dank.
die endung ist allerdings immer die selbe. ich werde mal versuchen, ob ich das darüber hinkriege. ich müsste als von der endung ".temp" bis zum ersten "/" zurücklesen. weisst du, über welchen befehl das gehen könnte?

gruß mmax
Bitte warten ..
Mitglied: bastla
26.06.2011 um 00:23 Uhr
Hallo meinzelmax!

Wenn der Dateiname zwischen dem ersten und zweiten "/" zu finden wäre, dann:
for /f "usebackq delims=" %%i in ("D:\Ein Ordner\Ursprugngsbatch.txt") do for /f "tokens=2 delims=/" %%a in ("%%i") do >%%~na.txt echo %%i
- ansonsten wäre eine genauere Beschreibung der möglichen Zeilenstruktur (bzw konkrete Beispiele) hilfreich ...

[Edit] Um von .temp bis zum ersten "/" zurückzulesen könnte das so gehen:
01.
@echo off & setlocal 
02.
set "Ausgangsdatei=Ursprungsbatch.txt" 
03.
set "Kennung=.temp" 
04.
set "Endung=txt" 
05.
 
06.
for /f "usebackq delims=" %%i in ("%Ausgangsdatei%") do for /f "tokens=1* delims=/" %%a in ("%%i") do set "Name=%%b" & call :ProcessLine "%%i" 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
call set "Rest=%%Name:*%Kennung%=%%" 
11.
call set "Dateiname=%%Name:%Kennung%%Rest%=%%" 
12.
>%Dateiname%.%Endung% echo %~1 
13.
goto :eof
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: meinzelmax
26.06.2011 um 00:35 Uhr
konkrete beispiele sind die hier:

835420/o.doc/i20/000/Erster.Text.temp
~274534:00/uc/Zweiter-Text.temp
dd/e83/023744/jsl/102/Dritter-Text.temp

das ist also schon ziemlich heterogen und der gewünschte dateiname liegt nicht zwischen zwei "/" sondern zwischen einem "/" und einem ".temp".

danke für deine mühe!
Bitte warten ..
Mitglied: bastla
26.06.2011 um 00:44 Uhr
Hallo meinzelmax!

Soferne der Dateiname immer nach dem letzten "/" folgt, etwa so:
01.
@echo off & setlocal 
02.
set "Ausgangsdatei=Ursprungsbatch.txt" 
03.
set "Endung=txt" 
04.
 
05.
for /f "usebackq delims=" %%i in ("%Ausgangsdatei%") do >%%~ni.%Endung% echo %%i
Da Windows auch mit "/" anstatt "\" als Trennzeichen zwischen Pfad und Dateiname zurechtkommt, wird hier einfach die gesamte Zeile als Dateipfad interpretiert und daraus der Dateiname (ohne Typ ".temp") extrahiert.

Grüße
bastla
Bitte warten ..
Mitglied: meinzelmax
26.06.2011 um 00:50 Uhr
genial!! es scheint für alle einträge meiner logs zu funktionieren.
vielen vielen dank!! und eine gute nacht!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeile mit Sonderzeichen in txt einfügen
gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

PHP
TXT Datei auslesen und bestimmte Zeilen in Variable setzen
gelöst Frage von 126594PHP11 Kommentare

Hallo zusammen, vorweg muss ich sagen, ich bin (bis jetzt) absoluter Neuling was PHP angeht. Ich will aus einer ...

Batch & Shell
Einzelne Zeilen in txt Datei speichern und auslesen
gelöst Frage von noah1400Batch & Shell7 Kommentare

Liebe Forum-Mitglieder Ich habe da so eine Frage: Ich bin gerade dabei ein PW abfrage mit Batch zu machen. ...

Entwicklung
Bestimmte zeile aus txt datei auslesen und sich aus zeile 100 einen wert anzeigen lassen ?
gelöst Frage von bob777Entwicklung12 Kommentare

Hallo Suche einen Weg sich aus einer .config (txt) datei einen Wert Spielzeit auszulesen und anzuzeigen? Kann das irgendwer ...

Neue Wissensbeiträge
Datenschutz

Weitere Inforamtionen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 2 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 3 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 6 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 12 StundenErkennung und -Abwehr2 Kommentare

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücken Spectre, Meltdown ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
Frage von Winfried-HHBatch & Shell15 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...