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 sequentiell aus 3 Textdateien auslesen

Mitglied: wickie666

wickie666 (Level 1) - Jetzt verbinden

08.02.2007, aktualisiert 19:10 Uhr, 5141 Aufrufe, 11 Kommentare

Ist es möglich aus 3 Textdateien sequentiell Zeilen auszulesen und die Strings in eine andere zu schreiben?
Ich habe drei Textdateien, die jeweils die identische anzahl an zeilen besitzen. die drei sollen so zusammengefügt werden, dass z.b. jeweils die erste zeile der 3 Dateien, zur ersten zeile der neuen txt zusammengefügt werden, dann die nächste usw.

Das auslesen von einer Textdatei und zusammenfügen von 3 hintereinanderfolgenden zeilen zu einer, habe ich hier schon beantwortet bekommen:

01.
@echo off
02.
echo AREA Name DESC>sortiert.txt
03.
set line=
04.
set /a count=0
05.
FOR /f "delims=" %%f IN ('type "MODULES_1.txt"') DO call :ProcessLine "%%f")
06.
(echo %line%)>>sortiert.txt
07.
goto :eof
08.
:ProcessLine
09.
if %count%==0 goto :NewLine
10.
set /a count+=1
11.
If %count% GTR 3 goto :NewLine
12.
set "line=%line% %~1"
13.
goto :eof
14.
:NewLine
15.
If %count% neq 0 (echo %line%)>>sortiert.txt
16.
set "line=%~1"
17.
set /a count=1
18.
goto :eof

, aber das schaff ich nun mal nicht ohne hilfe. Kann ich auf oben genannten code aufsetzen?
Ich hab keine idee ...

[Edit Biber] Formatierung auf <code> gesetzt [/Edit]
Mitglied: bastla
08.02.2007 um 06:39 Uhr
Hallo wickie666!

Kann ich auf oben genannten code aufsetzen?
Das wird so nicht gehen.

Vielleicht erklärst Du kurz, was Du eigentlich vor hast (ob der Vorgang regelmäßig und vollautomatisch ablaufen soll, und auch, was mit der Ergebnisdatei geschehen soll - werden zB Trennzeichen wie ";" oder "," benötigt, ...). Weiters nicht ganz unwichtig ist der Inhalt der Ausgangsdateien - etwa, ob sie Anführungszeichen enthalten.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
08.02.2007 um 07:01 Uhr
Moin wickie666,

klar kannst Du auf die im anderen Beitrag geposteten Skizzen aufsetzen.
Da sich bis jetzt aber nicht erkennen lässt, was denn genau Dein Plan bzw. der Sinn vons Ganze sein soll, verzichte ich jetzt mal auf jegliche Flexibitität der Lösung und gehe davon aus:
- es existieren im aktuellen Verzeichnis drei Dateien Modules_1.txt, Modules_2.txt, Modules_3.txt
- die Einzelzeilen werden einfach durch ein Leerzeichen getrennt aneinandergereiht
- das gemergete Ergebnis wird auf den Bildschirm ausgegeben - wie Du es in eine Datei umlenken kannst, steht ja im Parallelthread.

01.
::----------snipp Merge3Modules2One.bat
02.
@echo off &setlocal
03.
findstr /n . Modules_1.txt modules_2.txt modules_3.txt|sort /+14>%temp%\input.txt
04.
set "line="
05.
set /a count=0
06.
FOR /f "tokens=3 delims=:" %%f IN ('type "%temp%\input.txt"') DO call :ProcessLine "%%f"
07.
if "%line%" NEQ "" (echo %line%)
08.
del %temp%\input.txt
09.
goto :eof
10.

11.
:ProcessLine
12.
set "line=%line% %~1"
13.
set /a count+=1
14.
set /a modrest=count%%3
15.
If %modrest%==0 (
16.
    (echo %line:~1%)
17.
    set "Line="
18.
)   
19.
goto :eof
20.
::----------Merge3Modules2One.bat
Inhalte der Datei Modules_1.txt (Modules_2 und ~_3 ist analog)
01.
Modules_1 erste zeile
02.
Modules_1 zeile zwei
03.
Modules_1 noch eine Zeile
04.
Modules_1 vierte zeile - reicht zum testen
Aufruf am CMD-Prompt:
01.
>Merge3Modules2One.bat
02.
Modules_1 erste zeile Modules_2 erste zeile Modules_3 erste zeile
03.
Modules_1 zeile zwei Modules_2 zeile zwei Modules_3 zeile zwei
04.
Modules_1 noch eine Zeile Modules_2 noch eine Zeile Modules_3 noch eine Zeile
05.
Modules_1 vierte zeile - reicht zum testen Modules_2 vierte zeile - reicht zum testen Modules_3 vierte zeile - reicht zum testen
Den anderen Thread schliesse ich mal und setz ihn auf "gelöst".

Wäre nett, wenn Du erstmal Deinen Plan erläuterst... wieso und woher gibt es denn drei Modules_X.txt mit exakt gleicher Zeilenanzahl und wozu müssen die zusammengemanscht werden? Just for educational purposes?

Gruss
Biber
[Edit] Moin bastla,
sorry hatte Dich nicht gesehen, als ich mit Tippseln anfing...
Aber den tieferen Sinn der Manscherei verstehe ich genausowenig wie Du..
[/Edit]
Bitte warten ..
Mitglied: wickie666
08.02.2007 um 09:38 Uhr
gerade um den cmd aufruf geht es mir.
Da es immer unterschiedlich viele Zeilen sind (im normalfall mehrere hundert) ist der aufruf nicht wirklich einsatzfähig. geht das auch anders?
Danach behellige ich euch auch nicht mehr


[Edit]
Die Anwendung ist doch etwas sehr spezielles(wie ihr wohl gemerkt habt). Soll zugeschnitten werden auf eine firmeneigene Software, die ermöglicht gewisse informationen sequentiell in Textdateien auszugeben, nur leider gehören diese Informationen zusammen und eine Art tabellarische Aufstellung wäre nicht verkehrt(es wird in mehrere Textdateien aufgeteilt, da diese auch wieder zur weiterverarbeitung benutzt werden).
Warum das so gemacht wurde? Frag mich nicht... Bin nicht in der entwicklergruppe drin. Und die amis ändern wegen uns nichts ab.
Bitte warten ..
Mitglied: bastla
08.02.2007 um 10:06 Uhr
Hallo wickie666!

Danach behellige ich euch auch nicht mehr
"Behelligung" ist nicht das Thema (es zwingt mich ja niemand, Dir zu antworten), sondern zB die Frage, ob nicht vielleicht die Verwendung eines anderen Werkzeugs (etwa VBScript) oder ein anderer Lösungsweg (Zusammenfügen in Excel?) vorteilhafter wäre - und natürlich macht's mehr Sinn, nicht auf Verdacht eine Lösung zu entwickeln, die dann aufgrund vorher nicht bekannt(gegeben)er Vorgaben nicht einsetzbar ist.
Anyhow - ein etwas weniger "morgendlicher" Ansatz zu Biber's Vorlage:
01.
@echo off & setlocal
02.
set "in=%temp%\input.txt"
03.
if exist "%in%" del "%in%"
04.
set /a FileNr=1000
05.
for %%d in (%*) do call :ProcessFile "%%~d"
06.
set /a NumberOfFiles=%FileNr%-1000
07.
goto :MergeEm
08.
:ProcessFile
09.
set /a FileNr+=1
10.
set /a LineNr=10000000
11.
for /f "delims=" %%i in ('type %1') do call :outLine "%%i"
12.
goto :eof
13.
:outLine
14.
set /a LineNr+=1
15.
(echo %LineNr%-%FileNr%:%~1)>>"%in%"
16.
goto :eof
17.
:MergeEm
18.
set "line="
19.
set /a count=0
20.
FOR /f "tokens=2 delims=:" %%f IN ('sort "%in%"') DO call :ProcessLine "%%f"
21.
if "%line%" NEQ "" (echo %line%)
22.
del "%in%"
23.
goto :eof
24.
:ProcessLine
25.
set "line=%line% %~1"
26.
set /a count+=1
27.
set /a modrest=count%%%NumberOfFiles%
28.
If %modrest%==0 (
29.
    (echo %line:~1%)
30.
    set "Line="
31.
)
Aufruf mit:
01.
Merge.bat M1.txt M2.txt M3.txt > Ergebnis.txt
Grüße
bastla

[Edit] In Zeile for %%d in (%*) do call :ProcessFile "%%~d" ~ ergänzt [/Edit]
Bitte warten ..
Mitglied: wickie666
08.02.2007 um 10:22 Uhr
So, jetzt habt ihr es geschafft, ich versteh nix mehr.
Ich kann nicht nachvollziehen, warum bei mir nur eine leere textdatei rauskommt

P.S.:
Mir war schon klar, dass ihr mir gerne antwortet.
Ich hätte übrigens gerne ein VBScript geschrieben, aber unsere SW wird in chemieanlagen eingesetzt und ist somit eine hochkritische Anwendung, mit der restriktive, dass (so gut wie) keine andere Software neben ihr erlaubt wird. Wie die Bibel schon sagt:Du sollst keine anderen Götter neben mir haben.
Bitte warten ..
Mitglied: bastla
08.02.2007 um 10:58 Uhr
Hallo wickie666!

Kleine Änderung in Zeile
01.
for %%d in (%*) do call :ProcessFile "%%~d"
bereits oben eingearbeitet - wie ist es damit?

Grüße
bastla
Bitte warten ..
Mitglied: wickie666
08.02.2007 um 11:06 Uhr
nein, funktioniert leider immer noch nicht.
läuft das Skript denn bei dir korrekt?
Bitte warten ..
Mitglied: bastla
08.02.2007 um 11:14 Uhr
Hallo wickie666!

Bei mir tut's, was es soll (wenn ich gänzlich Ungetestetes poste, vermerke ich das).

Reduziere einfach einmal die erste Zeile auf "setlocal". Damit wird in der Ergebnisdatei jeder Arbeitsschritt angezeigt, bevor er ausgeführt wird (und natürlich auch dessen Ergebnis). Vielleicht nimmst Du zum Testen nur jeweils 10 Zeilen Deiner Testdateien ...

Grüße
bastla
Bitte warten ..
Mitglied: wickie666
08.02.2007 um 11:46 Uhr
Ich hab die input datei nicht löschen lassen, hier scheint noch alles i.O.:

10000001-1001:0
10000002-1001:1
10000003-1001:2
10000004-1001:3
10000005-1001:4
10000006-1001:5
10000007-1001:6
10000008-1001:7
10000009-1001:8
10000010-1001:9
10000001-1002:TESTER
10000002-1002:asfj
10000003-1002:asdf
10000004-1002:asdfasfd
10000005-1002:asdf
10000006-1002:asfd
10000007-1002:asdf
10000008-1002:asdf
10000009-1002:asdf
10000010-1002:asfd
10000001-1003:Control Module
10000002-1003:Control Module
10000003-1003:Control Module
10000004-1003:Control Module
10000005-1003:Control Module
10000006-1003:Control Module
10000007-1003:Control Module
10000008-1003:Control Module
10000009-1003:Control Module
10000010-1003:Control Module

Aber trotzdem ein leeres ergebnis.txt

Also als Ergebnis bekomme ich folgendes, wenn ich echo off rausnehme:


C:\Sonstiges\ge>setlocal

C:\Sonstiges\ge>set "in=C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>if exist "C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt" del "C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>set /a FileNr=1000

C:\Sonstiges\ge>for %d in (M1.txt M2.txt M3.txt) do call :ProcessFile "%~d"

C:\Sonstiges\ge>call :ProcessFile "M1.txt"

C:\Sonstiges\ge>set /a FileNr+=1

C:\Sonstiges\ge>set /a LineNr=10000000

C:\Sonstiges\ge>for /F "delims=" %i in ('type "M1.txt"') do call :outLine "%i"

C:\Sonstiges\ge>call :outLine "0"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000001-1001:0 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "1"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000002-1001:1 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "2"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000003-1001:2 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "3"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000004-1001:3 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "4"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000005-1001:4 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "5"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000006-1001:5 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "6"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000007-1001:6 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "7"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000008-1001:7 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "8"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000009-1001:8 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "9"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000010-1001:9 ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :ProcessFile "M2.txt"

C:\Sonstiges\ge>set /a FileNr+=1

C:\Sonstiges\ge>set /a LineNr=10000000

C:\Sonstiges\ge>for /F "delims=" %i in ('type "M2.txt"') do call :outLine "%i"

C:\Sonstiges\ge>call :outLine "TESTER"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000001-1002:TESTER ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asfj"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000002-1002:asfj ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdf"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000003-1002:asdf ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdfasfd"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000004-1002:asdfasfd ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdf"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000005-1002:asdf ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asfd"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000006-1002:asfd ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdf"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000007-1002:asdf ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdf"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000008-1002:asdf ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asdf"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000009-1002:asdf ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "asfd"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000010-1002:asfd ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :ProcessFile "M3.txt"

C:\Sonstiges\ge>set /a FileNr+=1

C:\Sonstiges\ge>set /a LineNr=10000000

C:\Sonstiges\ge>for /F "delims=" %i in ('type "M3.txt"') do call :outLine "%i"

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000001-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000002-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000003-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000004-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000005-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000006-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000007-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000008-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000009-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>call :outLine "Control Module"

C:\Sonstiges\ge>set /a LineNr+=1

C:\Sonstiges\ge>(echo 10000010-1003:Control Module ) 1>>"C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>goto :eof

C:\Sonstiges\ge>set /a NumberOfFiles=1003-1000

C:\Sonstiges\ge>goto :MergeEm

C:\Sonstiges\ge>set "line="

C:\Sonstiges\ge>set /a count=0

C:\Sonstiges\ge>FOR /F "tokens=2 delims=:" %f IN ('sort "C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"') DO call :ProcessLine "%f"

C:\Sonstiges\ge>if "" NEQ "" (echo )

C:\Sonstiges\ge>rem del "C:\DOKUME~1\MWIKTO~1\LOKALE~1\Temp\input.txt"

C:\Sonstiges\ge>goto :eof
Bitte warten ..
Mitglied: bastla
08.02.2007 um 14:50 Uhr
Hallo wickie666!

Ich nehme an, Du wirst folgendes Ergebnis spannend finden:
01.
<Z:\>type merge.bat
02.
@echo off & setlocal
03.
set "in=%temp%\input.txt"
04.
if exist "%in%" del "%in%"
05.
set /a FileNr=1000
06.
for %%d in (%*) do call :ProcessFile "%%~d"
07.
set /a NumberOfFiles=%FileNr%-1000
08.
goto :MergeEm
09.
:ProcessFile
10.
set /a FileNr+=1
11.
set /a LineNr=10000000
12.
for /f "delims=" %%i in ('type %1') do call :outLine "%%i"
13.
goto :eof
14.
:outLine
15.
set /a LineNr+=1
16.
(echo %LineNr%-%FileNr%:%~1)>>"%in%"
17.
goto :eof
18.
:MergeEm
19.
set "line="
20.
set /a count=0
21.
FOR /f "tokens=2 delims=:" %%f IN ('sort "%in%"') DO call :ProcessLine "%%f"
22.
if "%line%" NEQ "" (echo %line%)
23.
del "%in%"
24.
goto :eof
25.
:ProcessLine
26.
set "line=%line% %~1"
27.
set /a count+=1
28.
set /a modrest=count%%%NumberOfFiles%
29.
If %modrest%==0 (
30.
    (echo %line:~1%)
31.
    set "Line="
32.
)
33.
<Z:\>type M1.txt
34.
0
35.
1
36.
2
37.
3
38.
4
39.
5
40.
6
41.
7
42.
8
43.
9
44.
<Z:\>type M2.txt
45.
TEST
46.
asfj
47.
asdf
48.
asdfasfd
49.
asdf
50.
asfd
51.
asdf
52.
asdf
53.
asdf
54.
asfd
55.
<Z:\>type M3.txt
56.
Control Module
57.
Control Module
58.
Control Module
59.
Control Module
60.
Control Module
61.
Control Module
62.
Control Module
63.
Control Module
64.
Control Module
65.
Control Module
66.
<Z:\>merge.bat M1.txt M2.txt M3.txt
67.
0 TEST Control Module
68.
1 asfj Control Module
69.
2 asdf Control Module
70.
3 asdfasfd Control Module
71.
4 asdf Control Module
72.
5 asfd Control Module
73.
6 asdf Control Module
74.
7 asdf Control Module
75.
8 asdf Control Module
76.
9 asfd Control Module
77.

78.
<Z:\>
Also nächster Versuch - nimm ersatzweise die folgende Zeile rein:
01.
FOR /f "tokens=2 delims=:" %%f IN ('type "%in%" ^|sort') DO call :ProcessLine "%%f"
Grüße
bastla
Bitte warten ..
Mitglied: wickie666
08.02.2007 um 19:10 Uhr
ah, jetzt klappt es! vielen dank!!
Läuft genauso wie ich es haben wollte.

gruß
wickie
Bitte warten ..
Ähnliche Inhalte
Windows 8
Textdatei umformatieren
gelöst Frage von bladeyyyWindows 81 Kommentar

Hey, Ich habe folgendes Problem: Ein Programm exportiert bei mir eine Textdatei in dem Format: erste Zeile mit unnötigem ...

Batch & Shell
Filtern von Textdatei
gelöst Frage von MaxPauerBatch & Shell2 Kommentare

Hallo Zusammen, ich hätte ein Problem bei welchem ihr mir hoffendlich helfen könnt. Ich ich will eine Liste erstellen ...

Windows 10

Wiederherstellung von überschriebener Textdatei

gelöst Frage von Zippo97Windows 105 Kommentare

Hallo Freunde, Mir ist leider ein böser Fehler passiert. Ich habe in einen Textdokument einen verdammt wichtigen Code gespeichert. ...

Batch & Shell

Batch Textdatei Spaltenweise auslesen

Frage von PinkFLuffyUnicornBatch & Shell7 Kommentare

hi, ist es irgendwie möglich anstatt eine Textdatei via Batch Spaltenweise auszulesen und nicht zeilenweise wie das normal ganz ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 14 StundenInternet2 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 18 StundenWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 1 TagWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 1 TagSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs24 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell21 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...