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, 4035 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst (Batch) Datum Sortier-Mechanismus (19)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Datein zählen via Batch und Berechnen (1)

Frage von Anrion zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Datei die Zahl jede Zell in einer Spalte um 10 verkleinern (12)

Frage von ha5257 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows 10
Programm Installation bei Win 10 Fehlerhaft (13)

Frage von Keineahnungvonnix zum Thema Windows 10 ...