brother-tuck
Goto Top

Mit Batch einstelligen Zahlen eine 0 vorstellen und sortieren

Ich möchte in mehreren Dokument alle Zeilen die mit nur einstelligen Zahlen anfangen eine 0 vorstellen.

Ich habe mehrere Dokumente, in der jede Zeile mit einer Zahl beginnt.
Jetzt möchte ich eine Batch-Datei, die bei jeder einstelligen Zahl eine Null voranstellt.
Gibts eine Möglchkeit dies mitt einer Schleife zu tun?

Mein Lösungsansatz:
Ich würde die 2te Ziffer/Buchstabe prüfen, ist diese eine Zahl, gehe zur nächsten Zeile.
Sollte diese 2te Zeichen keine Zahl sein, würde ich vor das erste Zeichen der Zeile eine 0 einfügen und dann zur nächsten Zeile gehen.
Dies mit allen Zeilen wiederholen und zum Schluss noch aufsteigend sortieren.

Wäre super wenn mir da einer helfen könnte, das mit dem Zahlen editieren erweist sich als schwieriger als erwartet.

Mit freundlichen Grüßen
Brother-Tuck

Content-Key: 182411

Url: https://administrator.de/contentid/182411

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: 60730
60730 22.03.2012 um 11:31:45 Uhr
Goto Top
auch dir einen schönen Tag...

Ich habe mehrere Dokumente
  • ich auch - angefangen von a wie Audio bis z wie zustandsbeschreibungen - aber die sind alle in unterschiedlichen Dateiformaten" abgelegt.
Um welche gehts bei dir?

Gibts eine Möglchkeit dies mitt einer Schleife zu tun?
Naja - ich sehe nicht den Wunsch Kaffe zu kochen oder ein Auto zu reparieren, von daher ja.

Mein Lösungsansatz:
kannst du den auch hier gerne in code blöcken posten?

Ich würde die 2te Ziffer/Buchstabe prüfen, ist diese eine Zahl, gehe zur nächsten Zeile.
wahrscheinlich bist da da nicht der einzige face-wink
Sollte diese 2te Zeichen keine Zahl sein, würde ich vor das erste Zeichen der Zeile eine 0 einfügen und dann zur nächsten Zeile gehen.
Das passt doch wunderherrlichbar zur Thematik
Gibts eine Möglchkeit dies mitt einer Schleife zu tun?

Dies mit allen Zeilen wiederholen und zum Schluss noch aufsteigend sortieren.
Auch das ist via sort /? kein Ding.

Gruß
Mitglied: bastla
bastla 22.03.2012 um 11:35:27 Uhr
Goto Top
Hallo Brother-Tuck!
Gibts eine Möglchkeit dies mitt einer Schleife zu tun?
Die interessantere Frage wäre wohl, ob das ohne Schleife ginge ... face-wink

Dein Ansatz würde sich als Batch etwa so lesen:
@echo off & setlocal
set "Ein=D:\Die Ausgangsdatei.txt"  
set "Aus=D:\Die sortierte Datei.txt"  

set "T=%temp%\Unsortiert.txt"  

del "%T%" 2>nul  
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine  
sort "%T%" /o "%Aus%"  
goto :eof

:ProcessLine
set "ZZ=%Zeile:~1,1%"  
if defined ZZ echo 0123456789|findstr "%ZZ%">nul || set "Zeile=0%Zeile%"  
setlocal enabledelayedexpansion
>>%T% echo !Zeile!
endlocal
goto :eof
[Edit] Genauer wäre das allerdings so:
@echo off & setlocal
set "Ein=D:\Die Ausgangsdatei.txt"  
set "Aus=D:\Die sortierte Datei.txt"  

set "T=%temp%\Unsortiert.txt"  

del "%T%" 2>nul  
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine  
sort "%T%" /o "%Aus%"  
goto :eof

:ProcessLine
set "EZ=%Zeile:~,1%"  
set "ZZ=%Zeile:~1,1%"  
if defined ZZ echo 0123456789|findstr "%EZ%">nul && (echo 0123456789|findstr "%ZZ%">nul || set "Zeile=0%Zeile%")  
setlocal enabledelayedexpansion
>>%T% echo !Zeile!
endlocal
goto :eof
[/Edit]

Grüße
bastla
Mitglied: Brother-Tuck
Brother-Tuck 22.03.2012 um 12:05:17 Uhr
Goto Top
Vielen Dank für eure Hilfe bastla & TimoBeil.

TimoBeil danke ich für die lustigen Statement auch wenn das mir in keinster Weise weitergeholfen hat.
So ne Antwort liest sich zwar lustig, hilft aber niemandem.
Und 3 Textzeilen als Code zu vormatieren finde ich übertrieben...

bastla danke ich für die schnelle Hilfe und den Code. Außerdem natürlich für das beantworten meiner Frage.
Wie immer super schnell und genauso Kompetent. 1+^^

Gruß Brother-Tuck
Mitglied: 60730
60730 22.03.2012 um 15:05:16 Uhr
Goto Top
salve,

Zitat von @Brother-Tuck:
Vielen Dank für eure Hilfe bastla & TimoBeil.

TimoBeil danke ich für die lustigen Statement auch wenn das mir in keinster Weise weitergeholfen hat.
So ne Antwort liest sich zwar lustig, hilft aber niemandem.

naja Kollege Bastla hat einfach mal angenommen, es wären textdateien, aber muß man immer alles erraten?

Und 3 Textzeilen als Code zu vormatieren finde ich übertrieben...
Nö einzeiler sind die Macht und die sind ohne die Code Tags überhaupt nicht lesbar face-wink


Gruß Brother-Tuck

retour
Mitglied: Biber
Biber 22.03.2012 um 18:39:36 Uhr
Goto Top
[OT]
Moin Brother-Tuck,

Zitat von @Brother-Tuck:
Und 3 Textzeilen als Code zu vormatieren finde ich übertrieben...
Wenn du wüsstest, wie oft ich diese drei Zeilen nachmatieren muss als Hilfsmoderator im Bereich "Batch & Shell".

Gruß Brother-Tuck
Interessanter Nick. Ich kannte mal eine Mother-Fuck oder so ähnlich...
Gruß zurück
Biber
[/OT]