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

Printed on: April 24, 2024 at 18:04 o'clock

Mitglied: 60730
60730 Mar 22, 2012 at 10:31:45 (UTC)
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ß
Member: bastla
bastla Mar 22, 2012 at 10:35:27 (UTC)
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
Member: Brother-Tuck
Brother-Tuck Mar 22, 2012 at 11:05:17 (UTC)
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 Mar 22, 2012 at 14:05:16 (UTC)
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
Member: Biber
Biber Mar 22, 2012 at 17:39:36 (UTC)
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]