Welche (Sonderzeichen) kann ich verwenden, um einen Eintrag ganz hinten in der Sortierung anzeigen zu lassen (z. B. Filestruktur)?
Ich nutze gerne die Sonderzeichen ____ oder !!!! um Dateien ganz nach oben in der Ordnerstrukur anzuzeigen. Also
____ErsteDatei_____.exe
!!!!ZweiteDatei!!!!.exe
Autoexec.bat
Welche Sonderzeichen kann ich verwenden, um etwas nach ZZZZZ einordnen zu lassen?
In welcher Tabelle kann ich denn sehen, welche Zeichen vor aaaaa und nach zzzzz stehen?
Vielen Dank
Meine Frage war, ob ich irgend ein Sonderzeichen wählen kann, welches nach bbbbb in der Sortierung auftaucht. (Windows Explorer)
1 Antwort
Für Dateinamen sollte man sich grundsätzlich auf druckbare ASCII-Zeichen beschränken. Allerdings sind in diesem set auch Sonder- und Steuerzeichen enthalten, welche nicht in Dateinamen verwendet werden dürfen:
*/<>?\|":
Folgende Zeichen sind erlaubt, aber sollten vermieden werden, weil sie in cmd/Batch (und einigen anderen Scriptsprachen) zu unvorhersehbaren Interaktionen führen können:
&'%!,;^`~+
Keinen Ärger machen folgende Zeichen:
#$()-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_abcdefghijklmnopqrstuvwxyz{}
aber nun zu Deiner Sortierung:
Da richtet sich wenn es um Dateien geht nicht jedes Programm beim sortieren nach dem Wert des ASCII-Codes. (obgleich []_{} auf z folgen werden diese vor den Buchstaben eingeordnet) Ergo ist mit den erlaubten Zeichen des ACIIZeichensatzes bei Z schluss!
Modernes Windows erlaubt neben den ASCIIZeichen aber auch UTF8-Zeichen. Viele UTF8Zeichen werden abhängig von der verwendeten Systemsprache (bei der Dateisortierung) oberhalb von Z sortiert.
Jede Menge wen und aber.
Mit Kyrillischen Zeichen könnte es im Explorer funktionieren.
...allerdings können die in Anwendungen .welche kein UTF8 oder Kyrillische Fonts unterstützen, ärger machen.
Ich habe keine Ahnung was Du da rumbastelst.
um in Cmd/Batch einigermaßen mit UTF8 zurechtzukommen muss man die betreffende cidepage explizit setzen: chcp 65001 .
demo.cmd
@echo off
chcp 65001 &rem UTF8 Codepage setzen
rem erzeuge Textdateien mit den angegebene Zeichen im Namen
for %%a in ( 1 2 3 A B X Y Z_ [ ] { } ³ € Ю ц) do (echo blubb: %%a >"%%a.txt")
dir /on &rem dateien sortiert anzeigen
pause
Die batch muss im Editor als UTF8 (ohne BOM) gespeichert werden!

Weshalb machst Du überhaupt solchen Quatsch?
Mit einer normalen Nummerierung fester Länge (führende 0en) kommst Du wesentlich weiter. Das ist wesentlich sicherer als sich auf eine Sortierung zu verlassen, welche von der Art abhängt, wie eine Anwendung Sonderzeichen sortiert.
000001.txt
000002.txt
...
000009.txt
000010.txt
...
000098.txt
000099.txt
000100.txt
...das funktioniert immer und Überall
powershell "1..100|foreach{''>($_.tostring('d6')+'.txt')}"
Ansonsten bleibt Dir nur die Verwendung nichtlateinischer UTF8-Zeichen, welche oberhalb von Z angesiedelt sind (aber Vorsicht das kyrillische А sieht aus wie ein latein A steht aber nach dem Z !
8.txt
9.txt
A.txt
B.txt
X.txt
Y.txt
Z.txt
А.txt
В.txt
...was dann durchaus Verwirrung stiften könnte
welches nach bbbbb in der Sortierung auftaucht.
c
Danke schonmal. Ich kann hier kein Bild in die Antwort reinkopieren, daher habe ich oben meine Frage ergänzt. Man sieht einen Screenshot vom Windows-Explorer. Ich habe alle mi bekannten SOnderzeichen ausprobiert. Alle landen sie in der alphabetischen top-down-Sortierung vor den Buchstaben. Ich hätte halt gen ein Präfix vor dem Dateinamen, so das die Datei unten steht. Gehen würde es mit ZZZZZZ aber das will ich gerade nicht,