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

Reihenfolge von Zahlen korrekt anzeigen lassen ohne vorangestellter 0

Frage Entwicklung Batch & Shell

Mitglied: 45753

45753 (Level 1)

20.07.2007, aktualisiert 22.07.2007, 5124 Aufrufe, 9 Kommentare

Hallo zusammen,

gibt es eine Moeglichkeit in der Shell sich die Reihenfolge von Zahlen korrekt anzeigen lassen ohne vorangestellter 0 ?

Zahlenfolge 1-12 = 1,10,11,12,2,3,4,5,6,7,8,9

sollte aber sein

Zahlenfolge 1-12 = 1,2,3,4,5,6,7,8,9,10,11,12

Gruesse, wobleibtdiezeit
Mitglied: bastla
20.07.2007 um 13:16 Uhr
Hallo wobleibtdiezeit!

Du solltst vielleicht dazusagen, wo die Zahlen herkommen bzw was Du damit vorhast ...

Ganz grundsätzlich: Wenn Du eine Zahl einer Variablen mit
01.
set /a Var=Zahl
zuweist, wird diese numerisch interpretiert ...

Grüße
bastla
Bitte warten ..
Mitglied: 45753
20.07.2007 um 13:35 Uhr
Hallo bastla!

[ Du solltst vielleicht dazusagen, wo die Zahlen herkommen... ]

Stimmt hab ich vergessen...

Die Zahlen stammen aus Dateinamen.

Das Problem:

Wenn ich eine schon vorhandenen Zaehlenfolge aus den Ursprungsdateien entfernen moechte um dann gleich einen neuen Zaehler einzubauen geht das mit meiner Batch nicht innerhalb einer Operation. Ich muss immer zuerst die vorangestellten 0en berechnen lassen, damit mir die Reihenfolge im zweiten Durchgang dann korrekt angezeigt wird. Im zweiten Durchgang haben die Dateien dann nicht mehr die Zahlenfolge 1-12 sondern 01-12 - also 01,02,03,04,05,06,07,08,09,10,11,12. Erst dann wird die Reihenfolge der Dateien in der Shell korrekt angezeigt.
Wenn ich das nicht taete, dann wuerde der neue Zaehler die Datei mit der Zahl z.B. 10 an die zweite Stelle setzen - auf Grund der Darstellung der Ursprungsreihenfolge ohne vorangestellter 0: 1,10,11,...

Gruesse, wobleibtdiezeit

p.s. In Windows 98/95 gab es im Windows Explorer das gleiche Problem. Erst mit Windows XP/98 wurde dieses Problem im Explorer behoben. Die Shell scheint vergessen worden zu sein. Oder ist das Absicht ?
Bitte warten ..
Mitglied: bastla
20.07.2007 um 14:06 Uhr
Hallo wobleibtdiezeit!

Wenn Du Nummern in Dateinamen konsequent mit führender Null verwendest, taucht das Problem gar nicht auf.

Ausgehend von einem Dateinamen "Test0816.txt", gespeichert in der Variable %1, könntest Du die nächste Nummer etwa so ermitteln:
01.
set "DateiName=%~n1" 
02.
set /a Nr=1%DateiName:~-4%+1 
03.
set NeueNr=%Nr:~-4% 
04.
echo %NeueNr%
Falls der Name in %%i steht, in der ersten Zeile eben %%~ni verwenden

Die Zahl 4 gibt die Stellenanzahl an.



Grüße
bastla
Bitte warten ..
Mitglied: 45753
20.07.2007 um 14:34 Uhr
Hallo bastla!

Danke fuer die Hilfe...

Diese Art Code ist in meiner Batch auch enthalten. Sie ist auch in der Lage Ziffern zu erkennen um so die Ziffernanzahl der jeweiligen Zahl zu ermitteln um dann die ganza Zahl zu loeschen bzw. zu bearbeiten - unabhaengig davon an welcher Stelle die Zahl im Dateinamen steht...
Ich selbst nutze auch immer konzequent die Zahlen mit vorangestellter 0. Die Batch ist fuer Renaming-Zwecke gedacht. Dabei kommen die nicht von mir stammende Dateien mit nicht vorangestellter 0 leider immer wieder mal vor. Und genau das ist mein Problem...

Es gibt sicherlich andere Renaming-Tool die das ohne Probleme beherschen. Es wuerde mich aber doch interessieren, ob die Batch ebenso dazu in der Lage ist.

Gruesse, wobleibtdiezeit
Bitte warten ..
Mitglied: 45753
20.07.2007 um 22:27 Uhr
Nabend,

Da diese Art der Anzeige anscheinend auch weder in der Bash noch in der Powershell moeglich ist, muss es einen Grund dafuer geben weshalb diese Ausgabe nicht umzusetzen bzw. gewuenscht ist.
Alternative dir-Tools die ich ergoogelt habe schaffen es auch nicht.

Hat jemand eine Erklaerung warum in allen Shells die Zahlen 1-12 in den Dateinamen in der Reihenfolge
1,10,11,12,2,3,4,5,6,7,8,9
und nicht in der Reihenfolge
1,2,3,4,5,6,7,8,9,10,11,12
wie im Windows Explorer ausgegeben werden ?

Gruesse, wobleibtdiezeit
Bitte warten ..
Mitglied: bastla
20.07.2007 um 23:17 Uhr
Hallo wobleibtdiezeit!

Weil einfach nach ASCII sortiert und dabei der Dateiname nicht "interpretiert" wird? Für die CMD-Shell ist eben der Name ein String und nicht ein String mit Integer hintendran.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.07.2007 um 02:50 Uhr
Moin wobleibtdiezeit,

der Explorer kennt beide Einstellungen - die stumpf-alphabetische Sortierung und alternativ auch die "Zahlen-im-Dateinamen-nach-Wert"-Sortierung.
Lässt sich über einen Registry-Wert umschießen/einstellen. Ist auch irgendwo in diesem Forum schon mal gepostet worden.

Aber, um noch mal die von bastla schon gehauene Kerbe zu vertiefen - eigentlich vergibt man/frau geplanterweise so, dass sie später "sortiert" erscheinen, also nach Datum-im-Namen (z.B. "JJJJ-MM-TT_Protokoll.doc") oder mit "Version-im-Namen" ( und dann meinetwegen mit 1001 beginnend).

Grüße
Biber
Bitte warten ..
Mitglied: 45753
21.07.2007 um 11:10 Uhr
Hallo zusammen,

Danke Biber, dass du dich auch zu Wort meldest. Da sich der Registry-Wert wohl nur auf den Explorer bezieht und fuer die CMD-Shell wie bastla schreibt der Name nur ein String und nicht ein String mit Integer hintendran ist, werde ich die Sucherei im Web besser einstellen.

Danke fuer die Infos, wobleibtdiezeit
Bitte warten ..
Mitglied: 45753
22.07.2007 um 01:59 Uhr
Nabend!

Es gibt doch eine Loesung/Teil-Loesung des Problems.

Da es mir egal sein kann an welcher Stelle im Dateinamen sich der Zaehler befindet, kann ich ab der Stelle x im Dateinamen prüfen lassen, ob das 2., 3., 4., usw, Zeichen eine Zahl ist. Alle Dateinamen in denen sich die Zahlen mit nur einer Ziffer befinden werden dann in die Datei bla01.txt und die Dateinamen mit zweistelliger Ziffernanzahl in die Datei bla02.txt usw, geschrieben. Danach kann man (ist nicht zwingend notwendig) die Dateien zu einer zusammenfuegen. In der Datei blaall.txt werden zuerst die Dateinamen aus der bla01.txt umgeleitet, dann aus der bla02.txt usw. So hat man nun die korrekte Reihenfolge der Dateien auch ohne vorheriger 0 Stellenberechnung und ohne die Dateien zuerst umbenennen zu muessen. Diese Operation einzusparen war ja wie schon oben erwähnt mein eigentliches Ziel. Statt dem Dir-Befehl in der For-Schleife kann ich nun alternativ die blaall.txt einlesen lassen.

Der Rechenaufwand im Vergleich zum einfachen Dir-Befehl wird hoffendlich nicht allzu gross ausfallen. Den Code muss ich noch einfuegen. Aber das wird nicht schwer werden.

Nacht, wobleibtdiezeit
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Monitoring
gelöst Zugewiesene Benutzerrechte auf Server anzeigen lassen (1)

Frage von Fitzel69 zum Thema Monitoring ...

Outlook & Mail
Outlook 2013 mehrere kalender in Aufgabenleiste anzeigen lassen

Frage von montana zum Thema Outlook & Mail ...

Entwicklung
Quellcode von Open-Source Software anzeigen lassen (13)

Frage von M.Marz zum Thema Entwicklung ...

Outlook & Mail
Outlook benutzerdefiniertes Feld in der Visitenkarte anzeigen lassen

Frage von fireskyer zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...