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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 498180
Url: https://administrator.de/contentid/498180
Printed on: June 16, 2024 at 20:06 o'clock
11 Comments
Latest comment
Hallo Bea,
kann dir leider nur mit PowerShell helfen, da mein Batch wissen eingerostet ist.
Vielleicht hilft dir ja dieser Code:
Grüße
Somebody
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
Moin,
Unter Windows 7
Start-Knopf drücken -> Alle Programme -> Zubehör -> Powershell -> Powershell anklicken.![face-wink face-wink](/images/icons/fa/light/face-laugh-wink.svg)
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
Zitat von @blucas:
Moin Erik und Somebody,
besten Dank für die schnellen Antworten. Jetzt nur noch eine Nachfrage:
Wie erstelle ich eine Powershell?
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.
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
![Mitglied: 140913 Mitglied: 140913](/images/members/profile_male_64x64.png)
Zitat von @erikro:
Moin,
nimm die Powershell:
Der Code von @erikro ist fehlerhaft, er hat in der Foreach Schleife die quelle vergessen...ne Schleife ist hier aber überflüssigMoin,
nimm die Powershell:
get-childitem -path S:\Verein\A19*.pdf -recurse | %{copy-item -destination s:\verein\archiv}
get-childitem -path "S:\Verein\A19*.pdf" -recurse -file | copy-item -destination "s:\verein\archiv" -Force -verbose
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%"
Zitat von @140913:
Zitat von @erikro:
Moin,
nimm die Powershell:
Der Code von @erikro ist fehlerhaft, er hat in der Foreach Schleife die quelle vergessen...ne Schleife ist hier aber überflüssigMoin,
nimm die Powershell:
get-childitem -path S:\Verein\A19*.pdf -recurse | %{copy-item -destination s:\verein\archiv}
Oooooooops. Nee, ich hab nicht die Quelle vergessen, sondern die Schleife zu löschen.