
Ich bin auf die Frage 217394 gestoßen, in der erklärt wird, wie man alphabetisch sortierte Dateien in eine einzige Datei kopiert. Beim Versuch, den Befehl selbst auszuführen, wurde die folgende Fehlermeldung angezeigt: Das System kann die angegebene Datei nicht finden.
Der Befehl, den ich ausführen möchte, lautet:
für /f %i in ('dir /ad /on /b O:\OrdersExport\Order*.txt') mache @type %i >> C:\Benutzer\Admin\Dokumente\OrderImport.txt
Der Fehler tritt nicht auf, wenn ich zuerst zu dem betreffenden Ordner navigiere:
C:\>O: C:\>cd OrdersImport
Ich möchte einfach eine Zeile vom Ziel in diese einzelne Datei kopieren.
Übrigens, falls es wichtig ist, O: ist ein zugeordneter Ordner über das Netzwerk
Antwort1
Der dir
Befehl listet nur die Dateinamen auf. Daher %i
wird die Variable mit relativen Pfaden gefüllt. Wenn der Befehl nicht aus dem betreffenden Verzeichnis ausgeführt wird, verwenden Sie die %~fi
Erweiterung, um den relativen Pfad in einen absoluten Pfad zu erweitern.
for /f "tokens=*" %i in ('dir /a-d /o-n /b "O:\OrdersExport\Order*.txt"') do (
@type "%~fi" >> "C:\Users\Admin\Documents\OrderImport.txt"
)
tokens=*
behandelt Leerzeichen in Dateinamen, daher%i
wird immer die ganze Zeile derdir
Ausgabe ausgegeben.