Gelegentlich kann die Unfähigkeit der cmd-Shell, Platzhalterpfade zu erweitern, wirklich zu Unannehmlichkeiten führen. Ich musste 100 Dateien in einem Verzeichnis an ein Programm übergeben und konnte * .ext nicht eingeben. Stattdessen habe ich mingws 'ls' verwendet, um die Liste in eine Datei zu kopieren, und dann die Zeilenumbrüche durch Leerzeichen ersetzt, kopiert und in cmd eingefügt. Ein wahrer Albtraum.
Ich vermute, die Antwort wird nein sein, aber hat sich jemand damit befasst oder eine Möglichkeit gefunden, dies zu vereinfachen?
I suspect the answer will be no, but has anyone dealt with this or come up with any way to make this easier?
Tatsächlich habe ich das gegenteilige Problem. Ich versuche herauszufinden, wie der Befehlsinterpreter seine Liste als Zeichenfolgen behandeln und verhindern kann, dass sie als Platzhalter interpretiert werden. Zum Beispiel for %i in (foobar baz really?) do @echo %i
wird das letzte Element (Behandlung really?
) als Dateinamen Platzhalter, und es überspringt , wenn es keine Dateien mit dem Namen sind really1
, reallyz
usw. ☹
?
ist kein legales Zeichen für Dateinamen im Windows-Dateisystem. Das Zeichen kann nur als Platzhalter interpretiert werden. Siehe Benennen von Dateien, Pfaden und Namespaces in MSDN und Verwenden von Platzhalterzeichen in TechNet.