Nur Dateien mit gleichen Dateianfang verschieben
Hallo Leute,
ich bekomme täglich viele verschiedene Dateien mit gleicher Struktur in einem Verzeichnis bereitgestellt.
Derzeit werden alle Dateien nach einer Prüfung ob diese > 0KB sind verschoben.
Das fünktioniert auch sehr gut. (BAT-Datei: Code anbei) (INI-Datei: Code anbei)
In meinem Verzeichnis sind z.B folgende Dateien.
01CA00046.txt
01CA00047.txt
02CA00033.txt
02CA00034.txt
Ich möchte erreichen, dass z.B nur die Dateien mit dem Dateiprefix 01CA verarbeitet werden.
Mit %%i wird immer der ganze Dateiname als Variable aufgenommen.
Wie kann ich das anstellen?
Gruß
Roland
ich bekomme täglich viele verschiedene Dateien mit gleicher Struktur in einem Verzeichnis bereitgestellt.
Derzeit werden alle Dateien nach einer Prüfung ob diese > 0KB sind verschoben.
Das fünktioniert auch sehr gut. (BAT-Datei: Code anbei) (INI-Datei: Code anbei)
In meinem Verzeichnis sind z.B folgende Dateien.
01CA00046.txt
01CA00047.txt
02CA00033.txt
02CA00034.txt
Ich möchte erreichen, dass z.B nur die Dateien mit dem Dateiprefix 01CA verarbeitet werden.
Mit %%i wird immer der ganze Dateiname als Variable aufgenommen.
Wie kann ich das anstellen?
---------------------------------------------------------------------------------------------------
BAT-Datei
---------------------------------------------------------------------------------------------------
SET ININAME=%~n0.ini
for /f "tokens=2 delims==" %%i in ('findstr "MyZIEL=" %ININAME%') do SET MyZIEL=%%i
for /f "tokens=2 delims==" %%i in ('findstr "MyQUEL=" %ININAME%') do SET MyQUEL=%%i
set /a ThisLoop=0
:waitForTheFilesToCreate
if %Thisloop%==10 goto givingUp
set /a Thisloop=%Thisloop% +1
for /f "delims=" %%i in ('dir %MyQUEL% /b /a-d /s') do if %%~zi gtr 0 move "%%i" %MyZIEL%
if exist "%MyQUEL%" dir /b /A:-d "%MyQUEL%">nul 2>nul || goto machweiter
goto waitForTheFilesToCreate
:givingUp
echo Timeout am %date% %time%, da 0kB Dateien vorhanden (Siehe Stammverzeichnis) >> Error.log
for /f "delims=" %%i in ('dir %MyQUEL% /b /a-d /s') do if %%i gtr 1024 move "%%i"
goto machweiter
goto :eof
:machWeiter
for /f "tokens=2 delims==" %%i in ('findstr "MySTAR=" %ININAME%') do %%i
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
INI-Datei
----------------------------------------------------------------------------------------------------
MyQUEL=C:\TMP
MyZIEL=C:\LIVE
MySTAR=\\nvgm028.muc\....\CaPaX\Test.bat
----------------------------------------------------------------------------------------------------
Gruß
Roland
Please also mark the comments that contributed to the solution of the article
Content-Key: 88416
Url: https://administrator.de/contentid/88416
Printed on: April 19, 2024 at 02:04 o'clock
2 Comments
Latest comment