blucas
Goto Top

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

Content-Key: 498180

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

Printed on: June 16, 2024 at 20:06 o'clock

Member: SomebodyToLove
Solution SomebodyToLove Sep 25, 2019 at 10:58:14 (UTC)
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
Member: erikro
erikro Sep 25, 2019 at 11:02:02 (UTC)
Goto Top
Moin,

nimm die Powershell:

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

hth

Erik
Member: blucas
blucas Sep 25, 2019 at 11:06:44 (UTC)
Goto Top
Moin Erik und Somebody,

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

Wie erstelle ich eine Powershell?
Member: SomebodyToLove
Solution SomebodyToLove Sep 25, 2019 at 11:08:21 (UTC)
Goto Top
schreib statt ".bat" ".ps1" face-smile
Member: erikro
Solution erikro Sep 25, 2019 updated at 11:11:48 (UTC)
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
Member: SomebodyToLove
SomebodyToLove Sep 25, 2019 at 11:10:04 (UTC)
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.
Member: blucas
blucas Sep 25, 2019 at 11:25:19 (UTC)
Goto Top
wie einfach! face-wink

Es klappt aber immer noch nicht. Muss die Powershell in einem bestimmten Ordner liegen?
Mitglied: 140913
Solution 140913 Sep 25, 2019 updated at 11:32:42 (UTC)
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%"  
Member: blucas
blucas Sep 25, 2019 at 11:37:21 (UTC)
Goto Top
Juchu, jetzt klappt es.
Besten Dank!
Member: erikro
erikro Sep 25, 2019 at 12:49:11 (UTC)
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
Member: NordicMike
NordicMike Sep 25, 2019 updated at 16:53:10 (UTC)
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