Kann ich die Unterverzeichnisse eines Verzeichnisses durchsuchen und eine Datei mit einer bestimmten Erweiterung in einen neuen Ordner kopieren?

Kann ich die Unterverzeichnisse eines Verzeichnisses durchsuchen und eine Datei mit einer bestimmten Erweiterung in einen neuen Ordner kopieren?

Neuling hier – ich habe dieses Terminalskript, das unter Windows nicht zu funktionieren scheint, um Unterverzeichnisse in einem Verzeichnis nach allen Dateien mit einer bestimmten Erweiterung zu durchsuchen und diese in ein neues Verzeichnis zu verschieben.

find ./ -name '*.xlsx' -exec cp -prv '{}' \Documents\...' ";"

Ich habe mich gefragt, ob dasselbe mit einem MATLAB- oder einem anderen Windows-Skript möglich wäre. Mein ultimatives Ziel ist es, die Daten in all diesen xlsx-Dateien in einer Datei zusammenzufassen. Vielen Dank im Voraus für die Hilfe.

Antwort1

So durchlaufen Sie ein Verzeichnis in cmd.exe:

for /r "C:\Your\Directory" %A in (*.xlsx) do (move /y "%A" "C:\New\Directory\%~nxA")

Das /rin FORdurchläuft alle Dateien, die im angegebenen Verzeichnis liegen. Das /yin moveunterdrückt eine Eingabeaufforderung, die Sie fragt, ob das Verschieben der Datei in Ordnung ist. Die Verwendung von Anführungszeichen um Datei-/Verzeichnispfade ist empfehlenswert, falls Leerzeichen vorhanden sind. Standardmäßig werden Unterordner durchgelaufen.

Referenz:FOR-Schleifenbefehle

Wenn Sie eine Batch-Lösung bevorzugen, richte ich sie lieber mit Variablen wie diesen ein:

@echo off

set "old=C:\Your\Directory"
set "new=C:\New\Directory"

for /r "%old%" %%A in (*.xlsx) do (
    move /y "%%A" "%new%\%%~nxA"
)

pause

Der Hauptunterschied (meiner Meinung nach) zwischen Batch und einfacher Befehlszeile besteht darin, dass es etwas einfacher ist, Änderungen vorzunehmen, wenn Sie einfach zurückgehen und eine Variable bearbeiten können, ohne möglicherweise einen Pfad mehrmals in derselben Datei ändern zu müssen. Beachten Sie auch, dass Ihr Parameter in einer Batchdatei %Ageändert wird .%%A

verwandte Informationen