Jonmey
|
Posted: Thu Dec 23, 2010 13:40 Post subject: |
|
|
Обнаружилась маленькая проблема при работе скрипта, если имя папки содержит точку, то имена файлов контрольных сумм, архивов и создаваемых папок не содержат той части имени, которая идет после точки в названии папки верхнего уровня.
Не знаю, насколько это правильно, но для решения этой проблемы я заменил все %~n1 на %~nx1
И еще есть некоторая проблема, если папка верхнего уровня содержит архив одноименный тому, в который упаковывается бэкап (то есть одноименный с папкой верхнего уровня). Каким-то корявым образом решил это так:
Code: | rem Пример параметров для ТС: %L "%T"
@echo off & chcp 1251 >NUL
setlocal enableextensions
set "src=%~1"
set "dest=%~2"
for /f "delims=" %%d in (%src%) do call :d "%%d."
goto :eof
:d
cd /d %1
rhash.exe -r -M --ansi *.* >"%~nx1.md5"
if exist "%~nx1.rar" winrar.exe a "-cpBackup" "%~nx1.bak.rar" "*.*"
if not exist "%~nx1.rar" winrar.exe a "-cpBackup" "%~nx1.rar" "*.*"
if not exist "%dest%%~nx1" md "%dest%%~nx1"
if exist "%~nx1.bak.rar" (
if exist "%~nx1.rar" (
move "%~nx1.bak.rar" "%dest%%~nx1"
goto :eof
)
)
move "%~nx1.rar" "%dest%%~nx1"
goto :eof |
|
|