... speziell heißt mein Elternordner "Tiles". In diesem Ordner befinden sich Hunderte oder mehr Unterordner, von denen jeder weitere Unterordner enthält. Beispiele wären:Kopieren einzelner Datei in ausgewählte Unterordner
Fliesen/zzOrtho1/Texturen
Fliesen/zzOrtho1/Gelände
Fliesen/zzOrtho1/nav Daten
Fliesen/zzOrtho2/Texturen
Fliesen/zzOrtho2/Gelände
... und so weiter
Ich habe eine Datei im Tiles-Elternverzeichnis mit dem Namen 'water.dds' und ich möchte sie in jeden 'Sub-Unterordner' mit dem Namen 'textures' kopieren, aber keine anderen Ordner.
Dieser Batch-Skript (in diesem Forum gefunden), wenn sie in dem Fliesen-Ordner abgelegt, wird die Datei water.dds zu jedem Ordner und Unterordner im Fliesen übergeordneten Ordner kopieren:
@echo off
for /r "%CD%" %%f in (.) do (
copy "water.dds" "%%~ff" > nul
)
Aber ich haven‘ Es war in der Lage, es so zu bearbeiten, dass die dds-Datei nur in alle 'Unter-Unterordner', die 'Texturen' genannt werden, kopiert wird.
Alternativ kopiert dies die dds-Datei, die nun in einem eigenen Unterordner 'Tiles/water /' enthalten ist, in einen Ordner Tiles/Textures, aber wieder kann ich nicht sehen, wie man das anpasst, so dass es nach aufgerufenen Ordnern sucht ‚Textures‘ eine Schicht tiefer in die Ordnerstruktur und kopiert water.dds auf alle von ihnen ..
for /D %%x in (textures.*) do copy "water" %%x
Kann jemand freundlicherweise helfen?
Danke.
Sie brauchen den "% CD%" -Teil nicht, da 'for/R' das aktuelle Verzeichnis trotzdem als root verwendet (oder Sie geben stattdessen explizit das root-Verzeichnis an). Ich empfehle dringend, "/ I" zu "if" hinzuzufügen, da Windows dir./file paths/names Groß-/Kleinschreibung egal verhält; Verwenden Sie außerdem Anführungszeichen wie 'if/I" %% ~ nxG "==" textures "', um zu vermeiden, dass Leerzeichen oder andere Zeichen Probleme verursachen. Schließlich denke ich, dass Sie den vollständigen Pfad zur Quelldatei 'water.dds' bereitstellen müssen ... – aschipfl
Danke @aschipfl, bearbeitet :). Es benötigt nicht den vollständigen Pfad zur Datei water.dds, da sich die Datei in dem Verzeichnis befindet, in dem die Stapeldatei ausgeführt wird. – Tecnogirl
Großartig! Beachten Sie, dass das aktuelle Arbeitsverzeichnis nicht mit dem übergeordneten Verzeichnis des Stapelscript identisch ist. '% CD%' verweist auf das aktuelle Arbeitsverzeichnis, wobei '% ~ dp0.' auf den Pfad-Datei-Container zeigt ... – aschipfl