seltsames Wildcard-Phänomen (falsche Ausgabe in der 'Konsole')

Head

Active member
Themenstarter
Registriert
16 Okt. 2008
Beiträge
1.099
Hi...

ein Bekannter hat mich um Rat gefragt und nun sitzen schon zu zweit, leicht verwirrt, vor folgendem Problem:

Folgende Dateien (Ort auf extra Partition -> bsp. D:\temp\)
Code:
01_01.jpg
01_0001_x.jpg
01_0002_x.jpg
01_0003_x.jpg
01_0004_x.jpg
01_0005_x.jpg

Ein Teil der Dateien sollte per xcopy (ja, nicht mehr zeitgemäß...) kopiert werden.
Nun geschieht aber folgendes, auch unter dir:

Code:
dir *1.jpg
Gibt aus:
01_0005_x.jpg
01_0001_x.jpg
01_01.jpg

...und es sollte eigentlich nur die 01_01.jpg bei rauskommen, so habe ich es mal "gelernt". ;)
Erhöht man die Anzahl der Dateien werden alle, bis auf 3 unbestimmte Dateien, kopiert

Wo liegt das Problem? Ein System habe ich nur bedingt erkannt:

Nimmt man statt der Zahl einen Buchstaben, so funktioniert's:
dir *x.jpg -> alle mit x am Ende

Nimmt man statt der 1 eine 2, 3, 4 etc, stimmen die Ergebnisse ebenfalls nicht und ohne erkennbare Logik, aber in Reihenfolge (bei mehreren Dateien):
dir *3.jpg -> 01_0005_x.jpg
dir *4.jpg -> 01_0006_x.jpg


Ich kann mir nur vorstellen, das entweder..
A. ...die Command.com (cmd.exe), oder wer auch immer, fehlerhaft ist
B. ...Regex sich dahinter verbirgt?!
C. ...ein Zeichencodierungsfehler vorliegt (aber schon fast unvorstellbar)
D. ... wir gerade zu kompliziert denken...

Ach ja, OS ist Windows7 x64

Grüße

Head
 
Also erwarten würde ich auch dass nur die 01_01.jpg ausgegeben wird, unter Linux passiert das auch genau so wenn man die Situation nachstellt. :confused: *Windows 7 VM anschmeißt*

Edit: Bei mir unter W7 auch das von dir beschriebene Verhalten. Bemerkungen:

*01.jpg geht
*x.jpg geht
????1.jpg geht
*1.jpg bringt tatsächlich ein seltsames Ergebnis.

"geht" = erwartetes Ergebnis erscheint.

Edit2: Mein erster Gedanke war ja, dass er den Stern irgendwie auf andere Einsen bezieht, aber "dir *1.jpg" bringt sogar
"02_0007_x.jpg" als Ergebnis, wenn die Datei existiert.

dir *2.jpg liefert bei mir alle Dateien die irgendwo eine 2 enthalten, was eigentlich *2*.jpg entspricht. (also auch falsche Ergebnisse)

dir *3.jpg liefert alle Dateien die irgendwo eine 3 enthalten, was eigentlich *3*.jpg entspricht.(also auch falsche Ergebnisse)

Gebe ab, bin auch überfragt gerade :D

Edit3: Erstellt man eine Datei 01_0008_x.jpg3 und macht ein "dir *.jpg" so erscheint ebenfalls die genannte Datei, was ja eigentlich *.jpg* entspricht.
"02_0008_x.j3pg" sowie "02_0009_x.jp3g" hingegen werden nicht ausgegeben.

Vermutung: Windows hat das Tool seit Doszeiten erweitert und es liefert jetzt einfach zusätzlich alle ähnlich klingenden Dateien.
 
Zuletzt bearbeitet:
Ja, das dachte ich mir auch schon "überall, wo eine 2 enthalten ist", kann aber nicht ganz stimmen, denn warum funktioniert das bei 1 nicht?
Denn da werden enige Dateien ausgelassen, die ebenfalls die 1 enthalten, als muss - aus meiner Sicht - ein anderes System dahinter stecken.

Aber danke schon mal für deine Überprüfung ;)

Grüße
 
Ich habe gerade kein Windows griffbereit, aber das hängt wahscheinlich mit den "kurzen" 8.3 Dateinamen zusammen, die Windows im Hintergrund immernoch unterstützt. Davon enden dann wohl einige auf ...~1.jpg
 
Stimmt, daran dürfte es liegen mit der Eins. Erklärt aber nicht, wieso es bei 2 und 3 usw. auch seltsame Ergebnisse liefert.
 
Gibt's im Windows 7 noch den "/x" Paramater, der auch die kurzen Namen anzeigt? Vielleicht sind ja auch ein paar ...~2.jpg und ...~3.jpg dabei ;)
 
Ihr könnt es auch hiermit mal probieren:
Code:
dir *.jpg | find /I "1.jpg"
 
Der 8.3 ist generell ein guter hinweis, lassen sich aber leider nicht alle Phänomene mit erklären. Denn warum fallen bei einigen Auflistungen dann 3 Dateien raus, wobei die die gleiche länge wie die anderen haben?

Grüße
 
Wie sieht denn die Ausgabe von "dir *.jpg /x" in dem entsprechenden Verzeichnis aus?
 
Der 8.3 ist generell ein guter hinweis, lassen sich aber leider nicht alle Phänomene mit erklären. Denn warum fallen bei einigen Auflistungen dann 3 Dateien raus, wobei die die gleiche länge wie die anderen haben?
Bei den Kurznamen verbleiben üblicherwiese die ersten 6 Zeichen, und ~x (mit x als Ziffer) wird angehängt.
Wenn aber zu viele Dateien den gleichen Anfang haben, generiert Windows auch für die ersten paar Zeichen Zufallsdaten.
Mal ein Beispiel:

Code:
16.10.2010  18:20           694.586 PH0E90~1.JPG photo1048 (Mirko).JPG
24.07.2006  00:04           426.186 PH7C98~1.JPG photo1049 (Mirko).JPG
24.07.2006  00:04           679.277 PH40BF~1.JPG photo1052 (Mirko).JPG
24.07.2006  00:04           677.795 PH2B85~1.JPG photo1053 (Mirko).JPG
16.10.2010  18:20           692.200 PHE6A4~1.JPG photo1054 (Mirko).JPG
24.07.2006  00:04           690.553 PH8266~1.JPG photo1056 (Mirko).JPG
24.07.2006  00:04           689.571 PHC647~1.JPG photo1057 (Mirko).JPG
16.10.2010  18:20           684.430 PH7BC4~1.JPG photo1058 (Mirko).JPG
24.07.2006  00:04           447.243 PHCBE9~1.JPG photo1060 (Mirko).JPG
24.07.2006  00:04           450.792 PH176C~1.JPG photo1061 (Mirko).JPG
16.10.2010  18:20           487.638 PHE102~1.JPG photo1063 (Mirko).JPG
 
Das scheint die Lösung zu sein @zufall!
Also 8.3 Problematik - Vielen Dank für die Lösungsfindung.

Kleines Problem, große Ursache

Grüße
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben