Win 10 Batch: Datenname aus Liste Suchen und kopieren nach
Hallo zusammen,
Ich möchte anhand einer Liste die z.b 1,3,55,69,75,2,4, beinhaltet suchen lassen und genau diese Nummer in einen anderen Ordner kopieren.
Das hier ist mein Skript bisher:
Wenn ich das nutze kopiert er allerdings alle und wenn ich nur eine Zeile verwende, dann klappt es mit einem.
Ich befürchte er nimmt bei meinem Code auch die Schnittemenge, sprich: wenn ich 7 angebe nimmt er auch: 70-79.
Kann mir da jemand fix aushelfen?.
Es sind nur PNG in meinem Fall
Mit freundlichen Grüßen
Markus
Ich möchte anhand einer Liste die z.b 1,3,55,69,75,2,4, beinhaltet suchen lassen und genau diese Nummer in einen anderen Ordner kopieren.
Das hier ist mein Skript bisher:
@echo off &setlocal
set "sourceRoot=C:\xyz\hier liegen alle Bilder"
set "sourceList=C:\xyz\liste mit Nummern.txt"
set "destFolder=C:\xyz\Ziel Ordner\"
for /f "delims=" %%i in ('dir /a-d /b /s "%sourceRoot%\*.png"^|findstr /ig:"%sourceList%"') do (copy "%%~i" "%destFolder%\")
PAUSE
Wenn ich das nutze kopiert er allerdings alle und wenn ich nur eine Zeile verwende, dann klappt es mit einem.
Ich befürchte er nimmt bei meinem Code auch die Schnittemenge, sprich: wenn ich 7 angebe nimmt er auch: 70-79.
Kann mir da jemand fix aushelfen?.
Es sind nur PNG in meinem Fall
Mit freundlichen Grüßen
Markus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 372715
Url: https://administrator.de/contentid/372715
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Eine FOR /F Scheife verarbeitet Streams (je nach verwendeten Anführungszeichen Dateistreams, Stringstreams, Standard-Eingabestreams). Das USEBACKQ ändert die Bedeutung der Anführungszeichen. Für Dateipfade ist es Best Practice sie in doppelte Anführungszeichen zu setzen, dafür ist die Angabe von USEBACKQ nötig. Die FOR /F Schleife arbeitet dann zeilenweise ab, wobei standardmäßig nur das erste durch Leerzeichen oder Tab getrennte Token verarbeite und der FOR Variablen zugewiesen wird (in deinem Fall egal, da du keine derartigen Trennzeichen in deinen Zeilen hast). Wie @Kraemer schon geschrieben hat, sich eine Befehlsreferenz anzuschauen hilft ...
Steffen
Steffen