Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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 einstelligen Zahlen eine 0 vorstellen und sortieren

Frage Entwicklung Batch & Shell

Mitglied: Brother-Tuck

Brother-Tuck (Level 1) - Jetzt verbinden

22.03.2012 um 11:09 Uhr, 3930 Aufrufe, 5 Kommentare

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
Mitglied: 60730
22.03.2012 um 11:31 Uhr
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
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ß
Bitte warten ..
Mitglied: bastla
22.03.2012 um 11:35 Uhr
Hallo Brother-Tuck!
Gibts eine Möglchkeit dies mitt einer Schleife zu tun?
Die interessantere Frage wäre wohl, ob das ohne Schleife ginge ...

Dein Ansatz würde sich als Batch etwa so lesen:
01.
@echo off & setlocal 
02.
set "Ein=D:\Die Ausgangsdatei.txt" 
03.
set "Aus=D:\Die sortierte Datei.txt" 
04.
 
05.
set "T=%temp%\Unsortiert.txt" 
06.
 
07.
del "%T%" 2>nul 
08.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
09.
sort "%T%" /o "%Aus%" 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
set "ZZ=%Zeile:~1,1%" 
14.
if defined ZZ echo 0123456789|findstr "%ZZ%">nul || set "Zeile=0%Zeile%" 
15.
setlocal enabledelayedexpansion 
16.
>>%T% echo !Zeile! 
17.
endlocal 
18.
goto :eof
[Edit] Genauer wäre das allerdings so:
01.
<code>@echo off & setlocal 
02.
set "Ein=D:\Die Ausgangsdatei.txt" 
03.
set "Aus=D:\Die sortierte Datei.txt" 
04.
 
05.
set "T=%temp%\Unsortiert.txt" 
06.
 
07.
del "%T%" 2>nul 
08.
for /f "usebackq delims=" %%i in ("%Ein%") do set "Zeile=%%i" & call :ProcessLine 
09.
sort "%T%" /o "%Aus%" 
10.
goto :eof 
11.
 
12.
:ProcessLine 
13.
set "EZ=%Zeile:~,1%" 
14.
set "ZZ=%Zeile:~1,1%" 
15.
if defined ZZ echo 0123456789|findstr "%EZ%">nul && (echo 0123456789|findstr "%ZZ%">nul || set "Zeile=0%Zeile%") 
16.
setlocal enabledelayedexpansion 
17.
>>%T% echo !Zeile! 
18.
endlocal 
19.
goto :eof
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Brother-Tuck
22.03.2012 um 12:05 Uhr
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
Bitte warten ..
Mitglied: 60730
22.03.2012 um 15:05 Uhr
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


Gruß Brother-Tuck

retour
Bitte warten ..
Mitglied: Biber
22.03.2012 um 18:39 Uhr
[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]
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Spezielles Batch Problem mit Zahlen 20 + 29 (2)

Frage von narthan zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch und Powershell (2)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (15)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

Viren und Trojaner
Wie werde ich den Mist "fanli90" wieder los? (13)

Frage von Taumel zum Thema Viren und Trojaner ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...