Member 12658255 Ответов: 4

Как сделать так, чтобы этот скрипт архивировал все файлы в каталоге


@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
set extension=.*
for %%a in (*%extension%) do "%sevenzip%" a "%%~na.zip" "%%a"
pause


Что я уже пробовал:

1. этот скрипт архивирует весь файл, в котором он находится.
2. Этот скрипт молнии все файла в виде отдельных файлов

Я пытаюсь все файлы в один zip-файл, не создавая в нем другой папки, аналогично выбору всего содержимого каталога > щелкните правой кнопкой мыши > отправить в сжатый файл.
сколько бы изменений я ни делал я не мог добиться желаемых результатов
чего мне здесь не хватает.
может ли кто-нибудь объяснить, пожалуйста

CHill60

Что произойдет, если вы замените "%%~na.zip" с именем одного zipfile например "na.zip" - предостережение, он может перезаписывать zip-файл каждый раз, я не уверен. Но в данный момент вы включаете имя каждого файла в имя zipfile

Member 12658255

Привет, это было великолепно, спасибо. ты сделал мой день лучше всех

Member 12658255

Я узнал об этом недавно, поэтому мне нравится указывать на изменения, которые могут быть сделаны.

Если вам нужен скрипт для архивирования всех файлов как отдельных zip-файлов, то вам нужно изменить "%CurrDirName%.zip" кому "%%a.zip"

Если вам нужен скрипт для архивирования всего содержимого в один файл, вы можете изменить "%%a.zip" к "%CurrDirName%.zip

Если вам нужно предоставить простое имя вы можете жестко закодировать его там "Hardcoded.zip"

Если вам нужно заархивировать только определенные типы файлов вы можете добавить их в set extension

Если вам нужно zip, исключая определенные типы файлов you-x!*.bat, то здесь .bat-это то, что я исключаю

Надеюсь, это поможет

4 Ответов

Рейтинг:
26

CHill60

Согласно моему комментарию, после того, как материал найдет 7-zip, я думаю, что это должно быть

set extension=.*
for %%a in (*%extension%) do "%sevenzip%" a "AllFiles.zip" "%%a"


Рейтинг:
2

RickZeeland

Пример для архивирования всех xml-файлов:

SET Zipper="C:\Program Files\7-Zip\7z.exe" u 
%Zipper% "ziptest.zip" "*.xml"


Member 12658255

спасибо, что уделили мне время, но это не мой вопрос.

RickZeeland

Да, это так: "аналогично выбору всего содержимого каталога" щелкните правой кнопкой мыши " отправить в сжатый файл."
:)

Рейтинг:
2

Member 12658255

@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
for %%I in (.) do set CurrDirName=%%~nxI
set extension=.*
for %%a in (*%extension%) do "%sevenzip%" a "%CurrDirName%.zip" "%%a" -x!*.bat
pause
[/CODE]


Рейтинг:
0

Member 12658255

@echo off
cd /d %~dp0



rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%

\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip

\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit



for %%I in (.) do set CurrDirName=%%~nxI

set extension=.*
for %%a in (*%extension%) do "%sevenzip%" a "%CurrDirName%.zip" "%%a"


pause
[/CODE]


Это позволит заархивировать всю папку, в которую она помещена, и назвать ее именем родительской папки