Показать полную графическую версию : Архивация файлов в ARJ
Доброго времени суток, возникла такая задача
В одной папке имеются файлы с расширениями .XML и .p7s
D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\
В другой папке .bmp и .p7s
D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\
Как настроить так чтобы при нажатии скрипта, в папке D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\ создавался архив ARJ с именем "МассивВолжский.ARJ
В другой папке D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\ архив с именем "ОтчетыВолжский.ARJ
Пробовал этот код (Ниже) Не помогает. Раньше был архиватор WinRar все работало. Но данный архиватор уже нельзя использовать. Только 7zip
for /f "tokens=1-4 delims=/-\. " %%a in ('date /t') do (
set mjour=%%a
set mmois=%%b
set mannee=МассивВолжский
set mydate=%mannee%%mmois%%mjour%
set indir=D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\
set destdir=D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\
set arcpath=':\Program Files\7-zip
"%_arcpath%\Program Files\7-zip\7z.exe" a -ep1 "%destdir%\%mydate%.arj" "%indir%"
del /f /q D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\*.xml
del /f /q D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\*.p7s
for /f "tokens=1-4 delims=/-\. " %%a in ('date /t') do (
set mjour=%%a
set mmois=%%b
set mannee=ОтчетыВолжский
)
set mydate=%mannee%%mmois%%mjour%
set indir=D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\
set destdir=D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\
set arcpath=':\Program Files\7-zip
"%_arcpath%\Program Files\7-zip\7z.exe" a -ep1 "%destdir%\%mydate%.arj" "%indir%"
del /f /q D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\*.bmp
del /f /q D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\*.p7s
romfus, 1. set "arcpath=c:\Program Files\7-zip"
"%arcpath%\7z.exe" ........
2. ключа -ep1 у 7-zip нет, но требуемые параметры несложно и недолго подобрать. Русская справка есть в теме 7-zip (http://forum.oszone.net/thread-237913-38.html)
3. ARJ -- зачем такое расширение?
Данные архивы которые я потом отправляю требуют именно такое расширение. По договору
архив ARJ »
с архиватором 7z такое не выйдет, хотите переименовывайте для извращения
--------------
@echo off
set "name1=Волжский"
set "d1="C:\1_Ingener\%name1%\f_оut\Выгрузка\Массив" "Массив" "*.xml" "*.p7s""
set "d2="C:\1_Ingener\%name1%\f_оut\Выгрузка\ОтчётыПоМассивам" "Отчёты" "*.bmp" "*.p7s""
set "arx=C:\Program Files\7-Zip\7z.exe"
for /l %%n in (1 1 2) do call :#arx %%d%%n%%
pause& exit
:#arx
pushd "%~1"
"%arx%" a "%~2%name1%.7z" "%~3" "%~4" -sdel
popd
exit /b
megaloman
02-03-2020, 14:47
set mydate=%mannee%%mmois%%mjour% »
Раньше был архиватор WinRar все работало. Но данный архиватор уже нельзя использовать. Только 7zip »Этого не может быть. Ни rar ни 7z не делают архивы в формате arj. В .zip - можно.хотите переименовывайте для извращения » В представленном коде в первом for потеряна скобка.for /f "tokens=1-4 delims=/-\. " %%a in ('date /t') do (
set mjour=%%a
set mmois=%%b
set mannee=ОтчетыВолжский
)
set mydate=%mannee%%mmois%%mjour%
В каком формате дата в системе? Что должно получиться в переменной mydate? Вы явно хотите, чтобы там как-то фигурировала дата.
Дата это текущая дата на ПК, то есть МесяцДень. Но это необязательная переменная
Архивы может и не делает, но в скрипте раньше можно было самому задать расширение. в Винраре это срабатывало
megaloman
02-03-2020, 16:16
romfus, То же, что у alpap, но с датой в имени архива. В коде сейчас (жесткое порно) для архиватора 7-Zip формат архива указан как zip, при этом расширение архивного файла будет arj, так как, повторю: Ни rar ни 7z не делают архивы в формате arj. В .zip - можно. ИМХО, он наиболее совместим с остальными архиваторами@Echo Off
cls
Set "ArcType=zip"
Set "ArcExt=arj"
Set "Arc="%ProgramFiles%\7-Zip\7zG.exe" a -t%ArcType% -sdel"
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d"
Set "MMDD=%@Tdate:~4,2%%@Tdate:~6,2%"
Call :DoArc "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив" "*.XML *.p7s" "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\МассивВолжский%MMDD%.%ArcExt%"
Call :DoArc "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам" "*.bmp *.p7s" "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\ОтчетыВолжский%MMDD%.%ArcExt%"
pause
Exit /B 0
:DoArc
Pushd %1 ||(Echo %1 &Exit /B 1)
%Arc% %3 %~2
Popd
Exit /B 0
раньше можно было самому задать расширение »
можно то можно, но в пределах доступного для действий используемого архиватора
я уже говорил выше, можете добавить строку для переименования именно а arj (архиватор 7zip откроет этот архив):
...
ren "МассивВолжский.7z" "МассивВолжский.arj"
...
Расширение и сейчас можно задать произвольное, просто формат архива от этого не поменяется...
Расширение и сейчас можно задать произвольное »
при создании архива - нет, переименовать - да
просто формат архива от этого не поменяется »
ну да, но
требуют именно такое расширение »
начальство будет удовлетворено
начальство будет удовлетворено »
начальство может и будет... но ведь при попытке распаковать не тем архиватором, может возникнуть легкий когнитивный диссонанс, возможно, даже с последствиями. :)
http://arj.sourceforge.net/
megaloman
02-03-2020, 19:59
YuS_2, может возникнуть легкий когнитивный диссонанс, »А может и не возникнуть. Я не пользовался когда-то любимым arj со времен ms dos 6.22 и не хочу ставить его современную версию, чтобы проверить предположение: подозреваю, он умеет распаковывать архивы формата zip, а что там за расширение у архива - не столь важно. А вообще: ты начальник, тебе и отвечать, сказано 7z - извольте, правда никто не запрещает (я на это надеюсь) уточнить у издавших указание все тонкости путей его выполнения. Решение на бой (выполнение полученной задачи) командир взвода (отделения, танка) осуществляет единолично на основе уяснения задачи и оценки обстановки.
при создании архива - нет, »
Почему — нет?
при создании архива - нет, переименовать - да »Да ну?
Вполне работает7za a Archive.AnyExtensionYouChoose *
начальство может и будет... но ведь при попытке распаковать не тем архиватором, может возникнуть легкий когнитивный диссонанс, возможно, даже с последствиями. »
Ну если по договору требуется именно _расширение_ arj, то формально всё оk :)
Почему — нет? »
(Да ну? Вполне работает »)
у меня лично поэтому:
1 (https://drive.google.com/open?id=1qc2Q-e3S5_URH-gWHWDcnOC4trM45tmc)
-----
так естественно все ок
2 (https://drive.google.com/open?id=1iYW408_ca8wQwzX1h3_yz02q8hPIQK7X)
megaloman
03-03-2020, 12:07
alpap, В этом посте мой код. (http://forum.oszone.net/post-2911748-7.html)Для начала, чтобы было на чём тестировать, батник для генерации исходных папок и файловSet "D1=D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив"
Set "D2=D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам"
MD "%D1%" &MD "%D2%"
FOR /L %%i IN (0,1,9) DO (
>"%D1%\%%i %%i %%i %%i %%i %%i %%i %%i.XML" cd.
>"%D1%\%%i %%i %%i %%i %%i %%i %%i %%i.p7s" cd.
>"%D2%\%%i %%i %%i %%i %%i %%i %%i %%i.bmp" cd.
>"%D2%\%%i %%i %%i %%i %%i %%i %%i %%i.p7s" cd.
)
А вот что выдалось при запуске скрипта (единственное, что поменял, чтобы можно было увидеть выполнение и записать в файл
- Echo Off -> Echo On
- 7zG.exe -> 7z.exe) :
Z:\>cls
Z:\>Set "ArcType=zip"
Z:\>Set "ArcExt=arj"
Z:\>Set "Arc="C:\Program Files\7-Zip\7z.exe" a -tzip -sdel"
Z:\>FOR /F "tokens=2 delims==." %d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%d"
Z:\>SET "@Tdate=20200303115150"
Z:\>Set "MMDD=0303"
Z:\>Call :DoArc "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив" "*.XML *.p7s" "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\МассивВолжский0303.arj"
Z:\>Pushd "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив" || (Echo "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив" & Exit /B 1 )
D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив>"C:\Program Files\7-Zip\7z.exe" a -tzip -sdel "D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\МассивВолжский0303.arj" *.XML *.p7s
7-Zip [32] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04
Scanning the drive:
20 files, 0 bytes
Creating archive: D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив\МассивВолжский0303.arj
Items to compress: 20
Files read from disk: 20
Archive size: 3022 bytes (3 KiB)
Everything is Ok
D:\1_Ingener\Волжский\f_оut\Выгрузка\Массив>Popd
Z:\>Exit /B 0
Z:\>Call :DoArc "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам" "*.bmp *.p7s" "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\ОтчетыВолжский0303.arj"
Z:\>Pushd "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам" || (Echo "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам" & Exit /B 1 )
D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам>"C:\Program Files\7-Zip\7z.exe" a -tzip -sdel "D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\ОтчетыВолжский0303.arj" *.bmp *.p7s
7-Zip [32] 16.04 : Copyright (c) 1999-2016 Igor Pavlov : 2016-10-04
Scanning the drive:
20 files, 0 bytes
Creating archive: D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам\ОтчетыВолжский0303.arj
Items to compress: 20
Files read from disk: 20
Archive size: 3022 bytes (3 KiB)
Everything is Ok
D:\1_Ingener\Волжский\f_оut\Выгрузка\ОтчётыПоМассивам>Popd
Z:\>Exit /B 0
Z:\>pause
Для продолжения нажмите любую клавишу . . .
Z:\>Exit /B 0
Красным выделены строки с запуском архиватора, как видите, расширение прописано .arj
В результате получили файлы
МассивВолжский0303.arj
ОтчетыВолжский0303.arj Кстати, 7-zip и Rar спокойно эти архивы распаковывают
Может быть, моя (более старая) и Ваша (более новая) версия 7-zip работают по разному? Или надо явно указывать формат архива, например -tzip .
у меня лично поэтому: »
Ну, коллега megaloman уже, собственно, показал, как:
"C:\Program Files\7-Zip\7z.exe" a -tzip -sdel" »
(я лично пока не проверял, но мысль была та же).
я лично пока не проверял »
от перемены мест слагаемых параметров в 7z результат не меняется, я-то как раз проверял:
1 (https://drive.google.com/open?id=1uafFXsu5HLvN4LGDfio3hflDf-I0CIlU)
Кстати, 7-zip и Rar спокойно эти архивы распаковывают »
да, открывать и распаковывать - пожалуйста, создать - нет.
этой строкой
"C:\Program Files\7-Zip\7z.exe" a -tzip "архив.arj" *.bmp
как я понимаю идет создание архива архив.zip и переименование его в архив.arj, а не создание именно архив.arj - я это пытаюсь доказать показать, если я все правильно понимаю. Ну да, так на одну строку меньше записи - компактнее, но не более.
megaloman
03-03-2020, 16:47
alpap,
•Supported formats: ◦Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM
◦Unpacking only: AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, WIM, XAR and Z.
(https://www.7-zip.org/)Вы меня не слышите: У меня делается архив в формате zip c расширением .arj »
В Вашем примере надо (чтобы не делать отдельной строкой переименование):7z a -tzip arch.arj file.txt
-tarj не поддерживается, как и указано на сайте разработчика, 7-zip не способен создать архив в формате arj.
А расширение архива при архивации можно задать произвольное.
чтобы не делать отдельной строкой переименование »
правильно, так я и понимаю
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.