Beim Sortieren und Kopieren von Textdateien in eine einzelne Datei über die Befehlszeile tritt ein Fehler auf.

Beim Sortieren und Kopieren von Textdateien in eine einzelne Datei über die Befehlszeile tritt ein Fehler auf.

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 dirBefehl listet nur die Dateinamen auf. Daher %iwird die Variable mit relativen Pfaden gefüllt. Wenn der Befehl nicht aus dem betreffenden Verzeichnis ausgeführt wird, verwenden Sie die %~fiErweiterung, 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 %iwird immer die ganze Zeile der dirAusgabe ausgegeben.

verwandte Informationen