snowdream
Goto Top

Ab einer beliebigen Verzeichnisebene Dateien inklusive Dateien in Unterverzeichnisssen kopieren

Hallo,

ich möchte in einer Verzeichnisebene alle *.nfo in .xml kopieren, was auch funktioniert.
Jedoch sollte das auch in allen Unterverzeinisssen geschehen, was leider nicht funktioniert.

ist:
Verzeichnis
*.nfo
*.xml
Unterverzeichnis1
*.nfo
Unterverzeichnis2
*.nfo
Unterverzeichnis3
*.nfo

soll:
Verzeichnis
*.nfo
*.xml
Unterverzeichnis1
*.nfo
*.xml
Unterverzeichnis2
*.nfo
*.xml
Unterverzeichnis3
*.nfo
*.xml

Hier mein Ansatz:

 
set PFAD=%cd%
FOR /R %%a in ('DIR %PFAD% /S') DO copy *.nfo *.xml  

Content-Key: 208622

Url: https://administrator.de/contentid/208622

Printed on: April 26, 2024 at 08:04 o'clock

Member: Biber
Biber Jun 25, 2013 updated at 15:45:49 (UTC)
Goto Top
Moin snowdream,

da reicht eine einmalige Halbzeile vom CMD-Prompt - somit brauchst du weder eine %pfad%-Variable noch einen Batch.
Demo am CMD-Prompt.

FOR /R "Y:\Eigene Dateien\Biber"  %a in (*.nfo) DO @echo copy "%a" "%~dpna.xml"

Ist noch nicht scharf - durch "@echo copy" wird nur angezeigt, was passieren würde, hier ab Startverzeichnis "Y:\Eigene Dateien\Biber" abwärts.

Anmerkung:
- ob die kopierten *.nfo-Dateien mit der Endung *.xml benutzbar sind, das musst du ja wissen.
- wenn denn die *.nfo-Dateien in Wirklichkeit *.xml-Dateien wären, dann brauchst du doch nicht beide - dann ginge es mit einem REN einfacher.

Grüße
Biber
Member: bastla
bastla Jun 25, 2013 updated at 15:41:40 (UTC)
Goto Top
Hallo snowdream!

Etwa so:
for /r %%i in (*.nfo) do echo copy "%%i" "%%~dpni.xml"
Wenn die Ausgabe passt, das "echo" entfernen ...
Kurz zu Deinem Ansatz:
Abgesehen von der unnötigen Verwendung von "%CD%" (wenn Du keinen Pfad angibst wird ohnehin vom aktuellen Verzeichnis ausgegangen) hast Du eigentlich eine "for /f"-Schleife geschrieben (nur dort lassen sich nämlich die Ausgaben von Befehlen verwenden), wobei dann aber nur ein "dir /s" mit zusätzlichem "/b" sinnvoll wäre ...

Grüße
bastla

[Edit] An einem Montach wäre ich vermutlich noch Erster geworden face-wink [/Edit}
Member: snowdream
snowdream Jun 25, 2013 at 18:16:19 (UTC)
Goto Top
jetzt muss ich mich nur noch entscheiden, ob ich die Variante von Biber nehme (%%a) oder die von bastla (%%i)
face-wink

@Biber
- ja die .nfo sind dann als .xml nutzbar
- die .nfo Dateien werden von Ember Media Manager erzeugt und beinhalten XML-Tags mit Filminformationen für das MediaCenter XBMC
- manche MediaCenter (Player) benötigen diese Informationen aber anhand einer .xml, deshalb das Kopieren und nicht einfach umbenennen

@bastla
- hast natürlich recht mit "%CD%", im nachhinein völlig einleuchtend

Vielleicht kann mir aber noch einer von euch beiden erklären, was genau der Befehl "%%~dpn" macht?
Vielen Dank für eure Hilfe.

Gruß
snowdream
Member: bastla
bastla Jun 25, 2013 at 18:22:45 (UTC)
Goto Top
Hallo snowdream!
was genau der Befehl "%%~dpn" macht
Kurzfassung von
%%~di%%~pi%%~ni
- siehe dazu: for /? (ziemlich gegen Ende der Hilfe) ...

Grüße
bastla
Member: snowdream
snowdream Jun 25, 2013 at 19:33:17 (UTC)
Goto Top
Hallo bastla,

ok, alles verstanden.

%~d - Laufwerk
%~p - Pfad
%~n - Dateiname ohne Erweiterung

Danke
snowdream