blucas

Nur bestimmte Dateien auch aus Unterverzeichnissen kopieren

Hallo zusammen,

ich bin auf der Suche nach dem passenen Batch-Code, der folgenden Aufgabe übernimmt.

Ich habe das Verzeichnis "Verein", in dem sind wiederum viele Unterverzeichnisse. Jetzt möchte ich alle PDF-Dateien, deren Name mit "A19" beginnen aus den Unterverzeichnissen von Verein (im Ordner "Verein" selbst sind keine Dateien, nur weitere Unterordner) in den Ordner "Archiv" kopieren (nicht verschieben). Die Ordnerstruktur soll dabei nicht übernommen werden, so dass in dem Ordner Archiv nur die PDF-DAteien liegen, die mit "A19" beginnen.

Ich habe es hiermit versucht, aber es passiert nichts.

SET Startverz=S:\Verein\Saison
SET Zielverz=S:\Verein\Archiv
FOR /R "%Startverz%" %%I IN (A19*.pdf) DO xcopy "%%I" %Zielverz% /Y /D

Was mach ich falsch? Wer kann mir helfen?

Besten Dank für eure Hilfe
Bea
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 498180

Url: https://administrator.de/forum/nur-bestimmte-dateien-auch-aus-unterverzeichnissen-kopieren-498180.html

Ausgedruckt am: 16.05.2025 um 19:05 Uhr

SomebodyToLove
Lösung SomebodyToLove 25.09.2019 um 12:58:14 Uhr
Goto Top
Hallo Bea,

kann dir leider nur mit PowerShell helfen, da mein Batch wissen eingerostet ist.

Vielleicht hilft dir ja dieser Code:

$Path = "S:\Verein\Saison"  
$Files = Get-ChildItem -Path $Path\A19*.pdf
$ServerPath ="S:\Verein\Archiv"  

foreach($File in $Files){

Copy-Item $Path\$NewName $ServerPath

}

Grüße
Somebody
erikro
erikro 25.09.2019 um 13:02:02 Uhr
Goto Top
Moin,

nimm die Powershell:

get-childitem -path S:\Verein\A19*.pdf -recurse | %{copy-item -destination s:\verein\archiv}

hth

Erik
blucas
blucas 25.09.2019 um 13:06:44 Uhr
Goto Top
Moin Erik und Somebody,

besten Dank für die schnellen Antworten. Jetzt nur noch eine Nachfrage:

Wie erstelle ich eine Powershell?
SomebodyToLove
Lösung SomebodyToLove 25.09.2019 um 13:08:21 Uhr
Goto Top
schreib statt ".bat" ".ps1" face-smile
erikro
Lösung erikro 25.09.2019 aktualisiert um 13:11:48 Uhr
Goto Top
Moin,

Zitat von @blucas:

Moin Erik und Somebody,

besten Dank für die schnellen Antworten. Jetzt nur noch eine Nachfrage:

Wie erstelle ich eine Powershell?

Unter Windows 7
Start-Knopf drücken -> Alle Programme -> Zubehör -> Powershell -> Powershell anklicken. face-wink

Oder einfach in der Suche "Powershell" eingeben. Die Powershell ist der Nachfolger der Kommandozeile.

<edit>Und zum Skripte die Powershell ISE benutzen (erstmal). Bitte auch das beachten, wenn es denn ein Skript werden soll:
https://www.windowspro.de/script/ausfuehrungsrichtlinien-executionpolicy ... </edit>

Liebe Grüße

Erik
SomebodyToLove
SomebodyToLove 25.09.2019 um 13:10:04 Uhr
Goto Top
Bzw. wenn du bei dir am Rechner deine Programme durchsuchst, solltest du auch eine PowerShell ISE finden, in der kannst du den Code auch einführen und hast eine IDE.
blucas
blucas 25.09.2019 um 13:25:19 Uhr
Goto Top
wie einfach! face-wink

Es klappt aber immer noch nicht. Muss die Powershell in einem bestimmten Ordner liegen?
140913
Lösung 140913 25.09.2019 aktualisiert um 13:32:42 Uhr
Goto Top
Zitat von @erikro:

Moin,

nimm die Powershell:

get-childitem -path S:\Verein\A19*.pdf -recurse | %{copy-item -destination s:\verein\archiv}

Der Code von @erikro ist fehlerhaft, er hat in der Foreach Schleife die quelle vergessen...ne Schleife ist hier aber überflüssig

get-childitem -path "S:\Verein\A19*.pdf" -recurse -file | copy-item -destination "s:\verein\archiv" -Force -verbose  
In die PS Konsole eintippeln und feddich.

Die Batch geht aber auch so
@echo off &setlocal
SET "Startverz=S:\Verein\Saison"  
SET "Zielverz=S:\Verein\Archiv"  
FOR /R "%Startverz%" %%a IN ("A19*.pdf") DO copy /y "%%~a" "%Zielverz%"  
blucas
blucas 25.09.2019 um 13:37:21 Uhr
Goto Top
Juchu, jetzt klappt es.
Besten Dank!
erikro
erikro 25.09.2019 um 14:49:11 Uhr
Goto Top
Zitat von @140913:

Zitat von @erikro:

Moin,

nimm die Powershell:

get-childitem -path S:\Verein\A19*.pdf -recurse | %{copy-item -destination s:\verein\archiv}

Der Code von @erikro ist fehlerhaft, er hat in der Foreach Schleife die quelle vergessen...ne Schleife ist hier aber überflüssig

Oooooooops. Nee, ich hab nicht die Quelle vergessen, sondern die Schleife zu löschen. face-wink
NordicMike
NordicMike 25.09.2019 aktualisiert um 18:53:10 Uhr
Goto Top
Ohne es zu prüfen, aber in der Batch müsste es auch so gehen:

xcopy c:\verein\saison\A19*.pdf /s c:\verein\archiv