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 mehrere Zeilen auslesen und zu einer zusammenfassen

Mitglied: wickie666

wickie666 (Level 1) - Jetzt verbinden

07.02.2007, aktualisiert 18:55 Uhr, 4640 Aufrufe, 9 Kommentare

Ich möchte aus einer Textdatei die Zeileneinträge auslesen und diese in einer Variablen zwischenspeichern und dann mittels for-schleife in eine Textdatei schieben.

set line=
FOR /f "delims=" %%f IN (MODULES.txt) DO set line=%line% %%f
echo %line% >>sortiert.txt


Im Grunde nichts schweres, nur leider macht die for-schleife Probleme. Ich verstehe nicht, warum ich immer nur den letzten Eintrag der TXT Datei aufgelistet bekomme.
Also in wenn in der MODULES.txt die Eintrage
1
2
3
stehen, wird nur 3 in der sortiert.txt aufgeführt.
Ich will aber
1 2 3
dort stehen haben!
Wo liegt mein fehler?
Mitglied: bastla
07.02.2007 um 15:13 Uhr
Hallo wickie666!

So vielleicht:
01.
@echo off & setlocal EnableDelayedExpansion 
02.
set line= 
03.
FOR /f "delims=" %%f IN ('type "MODULES.txt"') DO set "line=!line! %%f" 
04.
echo %line%>>sortiert.txt
Mit dem "type" habe ich etwas Zusatzaufwand betrieben, um zB Pfadangaben mit Leerstellen unterbringen zu können - kannst Du auch wieder auf die Angabe des Dateinamens (aber ohne Anführungszeichen) reduzieren.

Grüße
bastla
Bitte warten ..
Mitglied: wickie666
07.02.2007 um 15:33 Uhr
super, das funktioniert.
Nun aber noch eine kleine frage, da ich nicht genau weiss, wie ich es angehen soll:
Wie kann ich nun jeweils nach 3 einträgen einen Zeilenumbruch erstellen?
in batch dateien kann man for schleifen doch nicht verschachteln, oder?
Bitte warten ..
Mitglied: bastla
07.02.2007 um 15:55 Uhr
Hallo wickie666!

Verschachteln ginge schon, Du könntest es aber auch so versuchen:
01.
@echo off 
02.
set line= 
03.
set /a count=0 
04.
FOR /f "delims=" %%f IN ('type "MODULES.txt"') DO call :ProcessLine "%%f" 
05.
(echo %line%)>>sortiert.txt 
06.
goto :eof 
07.
:ProcessLine 
08.
if %count%==0 goto :NewLine 
09.
set /a count+=1 
10.
If %count% GTR 3 goto :NewLine 
11.
set "line=%line% %~1" 
12.
goto :eof 
13.
:NewLine 
14.
If %count% neq 0 (echo %line%)>>sortiert.txt 
15.
set "line=%~1" 
16.
set /a count=1 
17.
goto :eof
Die Klimmzüge mit dem Überprüfen von %count% auf 0 verhindern, dass vor der ersten Zeile eine Leerstelle ausgegeben wird und die Klammern verhindern das am Ende der Zeile.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.02.2007 um 16:55 Uhr
Moin wickie666,

hmmm... ein bisschen angestrengt sehen diese Klimmzüge schon aus.

Eine Variation von bastla's Vorlage wäre:
01.
::----------snipp 3Lines2One.bat 
02.
@echo off &setlocal 
03.
set line= 
04.
set /a count=0 
05.
FOR /f "delims=" %%f IN ('type "MODULES.txt"') DO call :ProcessLine "%%f" 
06.
if [%line%] NEQ [] (echo %line%)>>sortiert.txt 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
set "line=%line% %~1" 
11.
set /a count+=1 
12.
set /a modrest=count%%3 
13.
If %modrest%==0 ( 
14.
    (echo %line%)>>sortiert.txt 
15.
    set Line= 
16.
)    
17.
goto :eof 
18.
::----------snipp 3Lines2One.bat
Ich hab dieses "Plus 1 und wenn = 3 dann wieder 0" jetzt mit der Modulo-Funktion versucht, etwas lesbarer zu machen.
Und, zweite Anmerkung, ich würde diese Umleitung nach sortiert.txt NICHT im Batch nach den ECHO-Befehlen machen, sondern im Batch nur ein "Echo %line%" behalten.
Und dann den Batch 3Lines2One.bat ggf. komplett umleiten.
3Lines2One >sortiert.txt

Gruss
Biber
Bitte warten ..
Mitglied: bastla
07.02.2007 um 17:33 Uhr
@Biber

Kommt mir das nur so vor, oder beginnen bei Deiner Lösung alle Ergebniszeilen mit einer Leerstelle (das zu vermeiden war eigentlich der Grund der kaum gewürdigten Anstrengung ?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.02.2007 um 18:06 Uhr
@bastla

Menno, man/frau kann sich auch anstellen... ist doch nur ein Batch..
01.
::----------snipp 3Lines2One.bat 
02.
@echo off &setlocal 
03.
set "line= " 
04.
set /a count=0 
05.
FOR /f "delims=" %%f IN ('type "MODULES.txt"') DO call :ProcessLine "%%f" 
06.
if "%line%" NEQ " " (echo %line%x) 
07.
goto :eof 
08.
 
09.
:ProcessLine 
10.
set "line=%line%%~1" 
11.
set /a count+=1 
12.
set /a modrest=count%%3 
13.
If %modrest%==0 ( 
14.
    (echo %line%) 
15.
    set "Line= " 
16.
)    
17.
goto :eof 
18.
::----------snipp 3Lines2One.bat
[wirkt immer noch nicht angestrengt,,,,]

Grüße
Biber
Bitte warten ..
Mitglied: bastla
07.02.2007 um 18:42 Uhr
@Biber

Montag? Dann sag' ich jetzt nix mehr ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
07.02.2007 um 18:49 Uhr
...seit ich diesen ###-Job hier in diesem ver###ten ###snest habe, ist jeder Tag ein gefühlter Montag...

Das kannst Du auch nicht schlimmer werden lassen...
Bitte warten ..
Mitglied: bastla
07.02.2007 um 18:55 Uhr
@Biber
Das kannst Du auch nicht schlimmer werden lassen...
Soll keiner sagen, ich hätt's nicht versucht.

Sorry - bin momentan etwas hyperaktiv (Fieber hat nachgelassen, Lungenentzündung als "nur leicht" diagnostiziert) ...

Zonenrandgebiet
Noch länger?

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

Powershell - mehrere Zeilen zusammenfassen

gelöst Frage von Forseti2003Batch & Shell3 Kommentare

Guten Abend, ich bastel mal wieder an einem PowerShell-Skript, echt praktisch was man damit alles machen kann ;-) Stoß ...

Batch & Shell

In Batch mehrere Zeilen auslesen ?!?

gelöst Frage von JanInfoHDBatch & Shell2 Kommentare

Ich habe in Programm in Batch geschrieben, doch es ließt aus einer .txt-Datei immer nur die erste Zeile, Was ...

VB for Applications

Mehrzeilige Datenquelle in eine Zeile Zusammenfassen

gelöst Frage von aivilonVB for Applications7 Kommentare

Guten Tag Admins Ich stehe wieder mal mit Excel an. Und zwar habe ich folgende Ausgangslage: Ausgangslage In einem ...

Datenbanken

MS Access: Mehrere Zeilen in einer Zelle zusammenfassen

gelöst Frage von User1000Datenbanken3 Kommentare

Hallo! Wir haben drei Tabellen KUNDEN KundenID (P) 1 2 3 SOFTWARE SoftwareID (P) 1 2 3 ZUORDNUNG_SOFTWARE KundenID ...

Neue Wissensbeiträge
Windows Server

Windows Server 2016: Achtung - ab heute gibt es wieder Express Updates

Information von kgborn vor 5 StundenWindows Server1 Kommentar

Kurze Info für Administratoren, die Windows Server 2016 per WSUS/SCCM mit Updates betanken. Ab heute gibt es für Windows ...

Windows Netzwerk
Windows Admin Center - Sagt was ihr braucht!
Tipp von Juanito vor 1 TagWindows Netzwerk16 Kommentare

Hallo zusammen, der ein- oder andere hat sicherlich schon vom Windows Admin Center gehört. - Microsoft's neue Adminkonsole welche ...

Verschlüsselung & Zertifikate

Bitlocker-Verschlüsselung und -Monitoring ohne MBAM

Tipp von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate

Der Folgende Tipp beschreibt, wie man ohne MBAM die Verschlüsselung erzwingt und monitort. MBAM ist ein Enterprise-Benefit und somit ...

Netzwerkprotokolle
IPv6 Konfiguration von Site-Site-VPN ohne feste IP
Anleitung von lcer00 vor 2 TagenNetzwerkprotokolle1 Kommentar

Hallo zusammen, vor einiger Zeit hatte ich hier eine Frage zu dem Thema gepostet: Da war noch etwas offen. ...

Heiß diskutierte Inhalte
Entwicklung
Meine Nachbarn sehen meinen Internet Trafic
gelöst Frage von beatnguEntwicklung51 Kommentare

Hallo Also ich wohne in einem Mehrparteien Haus mit 24 wohnungen. Meine nachbaren im letzten stock fummeln immer an ...

Windows 10
Windows 10 mit CRITICAL PROCESS DIED
Frage von liquidbaseWindows 1028 Kommentare

Das aktuelle Problem was ich habe steht bereits im Threadtitel. Etwas mehr zum Hintergrund soll nun folgen. Problemkind ist ...

Microsoft Office
Lizenzierung
Frage von opc123Microsoft Office26 Kommentare

Hallo, eventuell ein oft bekanntes Thema. Office 365 ist mir zu teuer, da wir als Bildungsträger andere Konditionen beim ...

Viren und Trojaner
Viren zu Testzwecken gesucht
Frage von ElHuttiViren und Trojaner20 Kommentare

Hallo, Ich suche zum rumtrollen auf einem alten PC Viren, die: - Keine Komponenten beschädigen - Keine Auswirkungen auf ...