Batch Variablen in for-Schleife
Hallo Liebe Administratoren
Ich kämpfe mit einem kleinen Problemchen und hoffe das Ihr mir helfen könnt.
Ich versuche eine Batch aufzubauen die mir: Aus einem Ordner, der jedes Quartal neu erstellt wird in einem bestimmten Pfad, eine in einem unter Ordner davon befindliche Datei zu kopieren. Diese soll dann auf ein externes Medium X: oder etwas ähnliches kopiert werden.
Das Problem ist das nicht der neuste Ordner genommen wird sondern ein älterer Ordner.
Ich habe in dem Ordner D:\test zwei unter Ordner drin die an unterschiedlichen Tagen erstellt wurden. Ordner 1 am 19.10.2017 und Ordner 2 am 24.10.2017.
Ein echo %neuerOrdner% gibt mir immer Ordner 1 aus
Ich habe bereits das Forum durchsucht und gelesen wie verrückt nur finde ich den Fehler nicht. Ich danke euch für eure Hilfe.
MFG
Dacki
Ich kämpfe mit einem kleinen Problemchen und hoffe das Ihr mir helfen könnt.
Ich versuche eine Batch aufzubauen die mir: Aus einem Ordner, der jedes Quartal neu erstellt wird in einem bestimmten Pfad, eine in einem unter Ordner davon befindliche Datei zu kopieren. Diese soll dann auf ein externes Medium X: oder etwas ähnliches kopiert werden.
Das Problem ist das nicht der neuste Ordner genommen wird sondern ein älterer Ordner.
Ich habe in dem Ordner D:\test zwei unter Ordner drin die an unterschiedlichen Tagen erstellt wurden. Ordner 1 am 19.10.2017 und Ordner 2 am 24.10.2017.
Ein echo %neuerOrdner% gibt mir immer Ordner 1 aus
@echo off
setlocal ENABLEDELAYEDEXPANSION
set "Quelle=D:\test\"
set "Ziel=x:\20174"
for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /O-D "%Quelle%\20*"')DO set "neuerOrdner=%%g"
echo %neuerOrdner%
pause
for /f "delims=" %%a in ('dir /ad /b /o-d "D:\test\%neuerOrdner%\test_unterordner\*.txt"') DO set "neueDatei=%%a"
echo %neueDatei%
pause
echo Kopiere "%neueDatei%" nach "%Ziel%" ...
pause
xcopy /E /Y "!Quelle!\!neueDatei!" "!Ziel!\neueDatei"
goto end
echo
pause
:end
)
Ich habe bereits das Forum durchsucht und gelesen wie verrückt nur finde ich den Fehler nicht. Ich danke euch für eure Hilfe.
MFG
Dacki
Please also mark the comments that contributed to the solution of the article
Content-Key: 353364
Url: https://administrator.de/contentid/353364
Printed on: April 24, 2024 at 22:04 o'clock
2 Comments
Latest comment
Beim der ersten Schleife falsch sortiert, und bei der zweiten nur Ordner statt Dateien inkludiert.
Drittens delayed expansion ist hier nicht nötig.
Drittens delayed expansion ist hier nicht nötig.
@echo off
set "Quelle=D:\test\"
set "Ziel=x:\20174"
for /f "tokens=* delims=" %%g IN ('dir /B /AD /TC /OD "%Quelle%\20*"') DO set "neuerOrdner=%%g"
echo %neuerOrdner%
pause
for /f "delims=" %%a in ('dir /a-d /b /od "D:\test\%neuerOrdner%\test_unterordner\*.txt"') DO set "neueDatei=%%a"
echo %neueDatei%
pause