Цитата KamikadZZe:
2020-10-22.gw.uniroll.log - основной
2020-10-22.gw.uniroll_0.log -архивный
2020-10-22.gw.uniroll_1.log -архивный »
|
Где эти файлы? Как в папках для свежих логов, так и в заархивированном виде?
2020-10-22.gw.uniroll.log обязательно есть? А 2020-10-22.gw.uniroll_0.log может быть, а может и не быть?
Постановка ....
Я понимаю так: Сначала создаётся 2020-10-22.gw.uniroll.log
Если необходимо потом следующий 2020-10-22.gw.uniroll_0.log
Если необходимо потом следующий 2020-10-22.gw.uniroll_1.log
и т д
Вот модификация решения под такую постановку
Код:
@Echo Off
cls
Call :Together "2020-11-01.gw.uniroll.log"
Call :Together "2020-11-28.gw.uniroll.log"
Call :Together "2019-11-28.gw.uniroll.log"
Call :Together "2020-11-29.gw.uniroll.log"
Call :Together "2019-11-29.gw.uniroll.log"
pause
Exit /B
:Together
Set "AllComp=127.0.0.1 LocalHost 192.168.100.23"
Set "AllRar= app001 app002 app003"
Set /A N=1000
For %%i In (%AllRar%) Do (Set /A N+=1 &Call Set "@@Arc%%N%%=%%i")
Set "LogFolder=C$\Program Files (x86)\Test\Log"
Set "Backup=\\192.168.100.23\Test2"
Set "Mask=log from ??20??.rar"
Set "BoxOut=Z:\Box_Out"
Set "Arc=C:\Program Files\WinRAR\Rar.exe"
If Not Exist "%BoxOut%\%~n1" (
Md "%BoxOut%\%~n1" ||(Echo Folder "%BoxOut%\%~n1" not created &Pause &Exit /B 1)
)
Set /A N=1000
For %%c In (%AllComp%) Do (
Set /A N+=1
For %%i In ("\\%%c\%LogFolder%\%~n1_*%~x1") Do >nul 2>&1 Call Copy "%%i" "%BoxOut%\%~n1\%%N:~1%%_%%c_%%~nxi"
>nul 2>&1 Call Copy "\\%%c\%LogFolder%\%~1" "%BoxOut%\%~n1\%%N:~1%%_%%c_%~1"||(
Call :FromRar %1 "%Backup%\%%N%%" "%BoxOut%\%~n1" "%%N:~1%%_%%c_"
)
)
"%Arc%" a -ep1 -hpPassword "%BoxOut%\%~nx1.rar" "%BoxOut%\%~n1\*.*"
Exit /B
:FromRar
Call Set "DirRar=%~dp2%%@@Arc%~nx2%%"
FOR /F "usebackq delims=" %%a IN (`2^>nul Dir "%DirRar%\%Mask%" /B /A:-D /O:-D /T:W`) DO (
FOR /F "delims=" %%f IN ('""%Arc%" lb "%DirRar%\%%a"|Find /I %1"') DO (
Set "NF=%%f"
Call Set "NF=%%NF:%%~xf=_*%%~xf%%"
Pushd %3
>nul 2>&1 Call "%Arc%" e "%DirRar%\%%a" "%%f" "%%NF%%"
>nul (For %%i In (%1 "%~n1_*%~x1") Do Move /Y %%i "%~4%%~i")
Popd
Exit /B
)
)
Exit /B 1