Bir klasörü zipleyen bir toplu işi (.bat) nasıl oluşturabilirim?


2

7zip'den 7za.exe komut satırı araçlarını indirdim ve aşağıdaki betiği kullanmam gerekiyor:

echo off

cls

set zip ="C:\7za.exe"

set filename="%date%.backup.zip"

set pathtobackup="C:\MyDocs"

%zip% -t7z %filename% %pathtobackup%\*.doc

Niyetim, MyDocs klasöründeki (alt klasörler dahil) tüm doc dosyalarını yedeklemek ve bunları tarihli bir zip dosyasına koymak. Daha sonra robokopi ile bu dosyayı sunucuma taşıyacağım, ancak şu anda dosyaları sıkıştırmakta bazı problemler yaşıyorum.

Bir ipucu olan var mı? Yine de dosya için bir şifre ekleyebilir miyim?


"Bazı problemleriniz" var: detaylandırmak ister misiniz? İlk bakışta, uzantısı .7zolan bir arşiv yaratıyorsunuz .zip. Ayrıca, %date%geçersiz, ayrılmış karakterler içerebilen değişkene güveniyorsunuz .
ve31415,

Yanıtlar:



3

7z yükleyin ve bu çalışma örneğini 7 günden daha eski dosyalar için delete komut dosyası ile kullanabilirsiniz. Bu betiğin yaptığı, verilen 'input' klasöründen 'output' klasörüne dosyaları sıkıştırır. Klasörleri sıkıştırmak için / d eklemeniz veya klasördeki tüm dosyaları sıkıştırmanız yeterlidir, sadece "%% X" ifadesini değiştirin.

REM This is a batch script to zip files in folder or add /d to zip folders.
REM This script is using 7z to zip files, installation is required - "[http://www.7-zip.org/a/7z938-x64.msi][1]"
REM Remember to point 'do' to 7z installed path 7z.exe

SET input1=D:\Backup\SampleFolder
SET input2=D:\Backup\SampleFolder2

SET output1=C:\ZipBackups\SampleFolder
SET output2=C:\ZipBackups\SampleFolder2

CD /d %input1%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output1%\%%X.zip" "%%X"
FORFILES /P "%input1%" /M *.* /D -8 /C "cmd /c del @file"

CD /d %input2%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output2%\%%X.zip" "%%X"
FORFILES /P "%input2%" /M *.* /D -8 /C "cmd /c del @file"

1

Bunun için basit bir çözüm buldum. Bir klasörde sıkıştırılmış birden fazla alt klasörünüz olduğunu varsayalım. Bu durumda, 1. 7zip yazılımını indirin ve yükleyin. Sonra 7z.exe dosyasını alt klasörlerinizi sıkıştırmak istediğiniz klasöre kopyalayın.

Bir not defterinde, aşağıdakini kopyalayıp yapıştırın ve .bat dosyası olarak kaydedin. :

cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")

Dosyayı çalıştırmak için çift tıklayın.

Orijinal klasörleri silmek isterseniz, kapanıştan önce bunu ekleyin:

rd /s /q "your_Folder_path\%%f"

-1
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
echo secs=%secs%

set year=%date:~-4%
echo year=%year%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
echo month=%month%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
echo day=%day%

set datetimef=%day%_%month%_%year%___%hour%_%min%_%secs%

echo datetimef=%datetimef%


path %path%;"C:\Program Files\7-Zip"

1
Bu soruyu cevaplayabilse de, neden böyle olduğunu açıklayabilirseniz daha iyi bir cevap olabilir .
DavidPostill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.