Нужно упаковать множество каталогов, каждый в отдельный файл
Каждый каталог содержит сотни маленьких файлов типа
RODRIGUES_BIMBA.CT.HEAD_INNEREAR_(ADULT).0001.0001.2017.02.19.11.18.15.585559.202195291.IMA
из этого имени файла нужно взять название слева до "." на этом примере : RODRIGUES_BIMBA
Упаковать содержимое каталога при помощи ultraISO в RODRIGUES_BIMBA.ISZ и Присвоить дату изменения файла точно такую же, как у первого попавшегося файла внутри пакуемого каталога. Для изменения даты думал использовать TouchFile.exe
Перепробовал массу вариантов, не получаеться передать переменные за цикл FOR, внутри цикла есть значение, снаружи нет . Пробовал SET i=%%i, все равно так и не понял как это делать.
Заготовка тут, до установки времени так и не дошел, застрял на формировании имени архива и передачи его в ultraISO:
CMD/BATCH:
@ECHO OFF
SetLocal EnableDelayedExpansion
Set origFold=%~dp0
for /d %%a in (*) do (
echo %%~nxa
cd %%~nxa
for /r %%a in (*.IMA) do (
echo %%~na>tempName.tmp
for /f "tokens=1 delims=." %%g in (tempName.tmp) do (
SET g=%%g rem как передать в ultraISO ???? так и не понял
cd..
exit
)
)
echo %%~ta>temp.tmp
for /f "tokens=1 delims= " %%h in (temp.tmp) do (
echo %%h>temp2.tmp
"C:\Program Files (x86)\UltraISO\UltraISO.exe" -udf -volu %%~nxa -imax -md5 -out "%origFold%%%~nxa_%g%.isz" -file "%%~dpnxa\*"
)
)
Вот что получилось, работает нормально.
Чуть даже пересмотрел постановку задачи, все исходные данные в имени файла можно взять и дату создания тоже.
CMD/BATCH:
@ECHO OFF
SetLocal EnableDelayedExpansion
Set origFold=%~dp0
for /d %%a in (*) do (
cd %%~dpnxa
for /r %%a in (*.ima) do (
for /f "tokens=1,2,3,6,7,8 delims=." %%i in ("%%~nxa") do (
set i=%%i_%%j_%%k
set t=%%m-%%n-%%l
)
)
cd %origFold%
echo !i! rem Имя архива
echo !t! rem новая Дата архива, взял их длинного названия файла 2017.02.19 только формат mm-dd-yyyy
"C:\Program Files (x86)\UltraISO\UltraISO.exe" -udf -volu !i! -imax -md5 -out "%origFold%!i!.isz" -file "%%~dpnxa\*"
FileTouch.exe /C /W /D !t! !i!.isz
)
)
rem RODRIGUES_BIMBA.CT.HEAD_INNEREAR_(ADULT).0001.0001.2017.02.19.11.18.15.585559.202195291.IMA