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

Mit batch aus einem Verzeichnis viele txt Dateien mit mehrenen Zeilen in eine txt Datei Zeilenweise inklusive Dateinamen zusammenführen

Frage Entwicklung Batch & Shell

Mitglied: viking

viking (Level 1) - Jetzt verbinden

04.12.2010 um 02:44 Uhr, 7698 Aufrufe, 4 Kommentare

Hallo,
wieder mal was für bastla oder die anderen Experten

Ich habe ein Verzeichnis c:\temp
In diesem habe ich viele Textdateien. *.txt
Jede Textdateien hat mehrere Zeilen jedoch weniger als 100 Zeilen und die Informationen in den Zeilen ist auch nicht größer als maximal 50 Zeichen.
Ziel:
Ich möchte per batch eine Textfile „Ergebnis.txt“ im gleichen Verzeichnis erzeugen, welches alle vorhandenen Textdateien zu einer zusammenfügt,
wobei aber der Inhalt der einzelnen Textdateien, Zeile für Zeile jeweils als eine Zeile in die neue Datei "Ergebnis.txt" geschrieben werden soll.
Ich benötige natürlich einen Trenner.
Der Dateiname der Ursprungsdateien soll jeweils als erste Information in die Zeile geschrieben werden.

Ich möchte die Datei dann in Excel importieren, bzw. einlesen.

Wenn gleich eine Excel Datei erzeugt werden könnte wäre natürlich noch besser.

Die einzelnen Zeilen der Ursprungsdateien sollen dann demzufolge in Spalten sein.
Für die Lösung einer Textdatei würde ich daher einen passenden Trenner benötigen.
Ich verwende Excel 2007 daher würde der Klammeraffe ganz passend sein, Excel 2003 auch kein Problem.

Gruß viking
Mitglied: Friemler
04.12.2010 um 03:46 Uhr
Hallo viking,

der folgende Code sollte Dein Problem lösen.
01.
@echo off 
02.
 
03.
setlocal 
04.
 
05.
set "WorkingDir=C:\Temp" 
06.
set "InFiles=%WorkingDir%\*.txt" 
07.
set "OutFile=%WorkingDir%\Ergebnis.txt" 
08.
 
09.
type NUL > "%OutFile%" 
10.
 
11.
for %%f in ("%InFiles%") do ( 
12.
  >>"%OutFile%" <NUL set /p "=%%f@" 
13.
 
14.
  for /f "usebackq delims=" %%l in ("%%f") do ( 
15.
    >>"%OutFile%" <NUL set /p "=%%l@" 
16.
17.
 
18.
  >>"%OutFile%" echo. 
19.
20.
 
21.
endlocal 
22.
exit /b
Die äußere FOR-Schleife ließt Pfad+Namen aller Dateien mit der Endung .txt im angegebenen Verzeichnis ein. In Zeile 11 wird der Dateiname mit einem nachfolgenden @ als Trennzeichen in die Ausgabedatei geschrieben. Der Befehl <NUL set /p "=xxx" gibt xxx ohne nachfolgenden Zeilenumbruch aus, deshalb werden auch die Dateizeilen, die von der inneren FOR-Schleife eingelesen und in Zeile 14 mit nachfolgendem Trennzeichen @ in die Ausgabedatei geschrieben werden, alle in eine Zeile der Ausgabedatei geschrieben. In Zeile 17 wird der Zeilenumbruch zum Abschluss einer Zeile in die Ausgabedatei geschrieben.

Einschränkung: Leerzeilen werden nicht in die Ausgabedatei übernommen.

Zum Laden der Ausgabedatei in Excel musst Du Dich durch den Import-Dialog für CSV-Dateien klicken (Datei->Öffnen...->Dateityp auf Textdateien (*.prn; *.txt; *.csv)) und als Trennzeichen @ wählen.

Gruß
Friemler
Bitte warten ..
Mitglied: 76109
04.12.2010 um 13:35 Uhr
Hallo viking!

Dann doch gleich direkt in Excel importieren

Quelltext in ein Modul kopieren, Konstanten anpassen und über <Extra><Makro><Makros> starten:
01.
Const FolderPath = "C:\Temp" 
02.
 
03.
Const SheetName = "Tabelle1" 
04.
 
05.
Sub TextImport() 
06.
    Dim Fso As Object, File As Object, TextFile As Object, Text As Variant, Line As Long 
07.
     
08.
    Set Fso = CreateObject("Scripting.FileSystemObject") 
09.
     
10.
    Sheets(SheetName).Activate:  Cells.ClearContents 
11.
     
12.
    Line = 1 
13.
     
14.
    For Each File In Fso.GetFolder(FolderPath).Files 
15.
        If LCase(Fso.GetExtensionName(File.Name)) = "txt" Then 
16.
            Set TextFile = Fso.OpenTextFile(File.Path) 
17.
             
18.
            Text = Split(TextFile.ReadAll, vbCrLf):  TextFile.Close 
19.
             
20.
            Cells(Line, 1) = Fso.GetBaseName(File.Name) 
21.
             
22.
            Range(Cells(Line, 2), Cells(Line, 2 + UBound(Text))) = Text 
23.
             
24.
            Line = Line + 1 
25.
        End If 
26.
    Next 
27.
 
28.
    Columns.AutoFit    'Spaltenbreite automatisch anpassen? 
29.
End Sub
Wobei Leerzeilen als Leerspalten übernommen werden.

Gruß Dieter
Bitte warten ..
Mitglied: viking
06.12.2010 um 11:27 Uhr
Zitat von Friemler:
Hallo viking,

der folgende Code sollte Dein Problem lösen.
01.
> @echo off 
02.
>  
03.
> setlocal 
04.
>  
05.
> set "WorkingDir=C:\Temp" 
06.
> set "InFiles=%WorkingDir%\*.txt" 
07.
> set "OutFile=%WorkingDir%\Ergebnis.txt" 
08.
>  
09.
> type NUL > "%OutFile%" 
10.
>  
11.
> for %%f in ("%InFiles%") do ( 
12.
>   >>"%OutFile%" <NUL set /p "=%%f@" 
13.
>  
14.
>   for /f "usebackq delims=" %%l in ("%%f") do ( 
15.
>     >>"%OutFile%" <NUL set /p "=%%l@" 
16.
>   ) 
17.
>  
18.
>   >>"%OutFile%" echo. 
19.
> ) 
20.
>  
21.
> endlocal 
22.
> exit /b 
23.
> 
Die äußere FOR-Schleife ließt Pfad+Namen aller Dateien mit der Endung .txt im angegebenen Verzeichnis ein. In
Zeile 11 wird der Dateiname mit einem nachfolgenden @ als Trennzeichen in die Ausgabedatei geschrieben. Der Befehl <NUL
set /p "=xxx"
gibt xxx ohne nachfolgenden Zeilenumbruch aus, deshalb werden auch die Dateizeilen, die von der
inneren FOR-Schleife eingelesen und in Zeile 14 mit nachfolgendem Trennzeichen @ in die Ausgabedatei geschrieben werden, alle
in eine Zeile der Ausgabedatei geschrieben. In Zeile 17 wird der Zeilenumbruch zum Abschluss einer Zeile in die Ausgabedatei
geschrieben.

Einschränkung: Leerzeilen werden nicht in die Ausgabedatei übernommen.

Zum Laden der Ausgabedatei in Excel musst Du Dich durch den Import-Dialog für CSV-Dateien klicken
(Datei->Öffnen...->Dateityp auf Textdateien (*.prn; *.txt; *.csv)) und als Trennzeichen @ wählen.

Gruß
Friemler



Funtioniert super, ..

Danke!

Gruß viking
Bitte warten ..
Mitglied: viking
06.12.2010 um 11:29 Uhr
Funtioniert super.
(Die Daten gleich in Excel)

Danke!

Gruß viking
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mittels Batch alle .txt Dateien eines Verzeichnises ändern
gelöst Frage von mttspeedyBatch & Shell10 Kommentare

Ich habe ca. 10.000 TXT-Dateien in einem Verzeichnis und möchte für alle folgendes durchführen: -> suchen in jeder Datei ...

Batch & Shell
Mehrere Dateien in einer Textdatei per batch oder script zusammenführen
gelöst Frage von HausbootBatch & Shell24 Kommentare

Guten Tag in die Runde der Fachleute. Ich habe folgendes Problem: In einem Unterordner liegen Dateien mit verschiedenen Dateinamen ...

Batch & Shell
Mehrere txt Dateien einlesen und letzte Zeile löschen
gelöst Frage von THRILLERBatch & Shell1 Kommentar

Hallo Gemeinde, ich beschäftige mich mit folgendem Problem. Und zwar will ich aus einem Ordner mehrere Dateien einlesen und ...

Batch & Shell
Powershell - zeilenweise Variablen aus TXT Datei einlesen
gelöst Frage von adm2015Batch & Shell12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte meinen alten Batch Code in Powershell verwenden und finde keinen passenden Lösungsansatz. ...

Neue Wissensbeiträge
Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 3 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 16 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 23 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 1 TagWindows 103 Kommentare

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

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
Frage von IngenieursBatch & Shell24 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1019 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

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

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 ...