FOR Schleife für Batchdatei
Hallo Leute,
hab hier Folgenden Code:
@echo off &setlocal
for /f "delims=" %%a in ('dir /a-d /b /od *.txt') do set "newestFile=%%a"
move "%newestFile%" "D:\test2\%newestFile%"
popd
Das Programm Kopiert die neuste Datei eines Ordners in einen anderen Ordner.
Mein Problem ist, ich brauch diesen Code in einer FOR Schleife, damit ich bestimmen kann wie viel "neuste Dateien" er in den anderen Ordner Kopieren soll.
Da ich noch nicht lange damit arbeite, bin ich schon am verzweifeln :/
Vielleicht kann mir hier jemand kurz diese FOR Schleife basteln.
Wäre echt Super!
Ich bedanke mich schonmal im vorraus
Grüße
Marcel
hab hier Folgenden Code:
@echo off &setlocal
move "%newestFile%" "D:\test2\%newestFile%"
popd
Das Programm Kopiert die neuste Datei eines Ordners in einen anderen Ordner.
Mein Problem ist, ich brauch diesen Code in einer FOR Schleife, damit ich bestimmen kann wie viel "neuste Dateien" er in den anderen Ordner Kopieren soll.
Da ich noch nicht lange damit arbeite, bin ich schon am verzweifeln :/
Vielleicht kann mir hier jemand kurz diese FOR Schleife basteln.
Wäre echt Super!
Ich bedanke mich schonmal im vorraus
Grüße
Marcel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 306556
Url: https://administrator.de/contentid/306556
Ausgedruckt am: 17.11.2024 um 17:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
willst du die Dateien zählen ?? Dann vielleicht so, oder so ähnlich??
willst du die Dateien zählen ?? Dann vielleicht so, oder so ähnlich??
@echo off & setlocal
cls
set "VerzeichnisA=C:\test1"
set "VerzeichnisB=C:\test2"
set "Typ=txt"
set /A Dateien=0
pushd %VerzeichnisA% ||goto :eof
for /f "delims=" %%a in ('dir /a-d /b /od "*.%Typ%"') do (
set "newestFile=%%a"
move "%%a" "%VerzeichnisB%\%newestFile%"
set /A Dateien=Dateien+1
)
echo Dateien: %Dateien%
popd
Hi,
nun du könntest das vielleicht so machen:
Die erste Schleife zählt alle Dateien des Typs.
Dann wird die Anzahl der Dateien mit der Anzahl die kopiert werden soll subtrahiert.
Die zweite Schleife überspringt per skip= alle die nicht kopiert werden sollen, die übrigen werden kopiert.
nun du könntest das vielleicht so machen:
@echo off & setlocal
cls
set "VerzeichnisA=C:\test1"
set "VerzeichnisB=C:\test2"
set "Typ=txt"
set /a dateien=0
pushd %VerzeichnisA% ||goto :eof
for /f %%i in ('dir /b /a-d "*.%Typ%"') do set /a dateien=dateien+1
echo Es sind insgesamt %dateien% %Typ% Dateien
)
set /p "skipdateien=Wie viele Dateien sollen kopiert werden: "
set /a dateien=%dateien%-%skipdateien"
for /f "skip=%dateien% delims=" %%a in ('dir /b /a-d /od "*.%Typ%"') do (
set "newestFile=%%a"
echo move "%%a" "%VerzeichnisB%\%newestFile%"
)
endlocal
Dann wird die Anzahl der Dateien mit der Anzahl die kopiert werden soll subtrahiert.
Die zweite Schleife überspringt per skip= alle die nicht kopiert werden sollen, die übrigen werden kopiert.