Saya ingin membuat skrip batch yang akan memampatkan semua file dalam jalur yang saya tentukan menjadi .zip
arsipkan dengan nama yang saya tentukan. saya tidak ingin menggunakan perangkat lunak pihak ketiga karena saya membuat alat ini untuk distribusi publik, dan ingin menggunakan komponen yang dibangun ke dalam Windows. Saya memiliki skrip yang saya gunakan sekarang berdasarkan pertanyaan yang saya temukan sini . Ini kode untuk skrip saya:
:TESTCHOICE
ECHO Do you want to make a backup first?
ECHO (Enter Y to proceed or N to cancel)
set /p :CHOICE=""
if /I "%c%" EQU "Y" GOTO :BACKUP
if /I "%c%" EQU "N" GOTO :MENU
:BACKUP
SET FILETOZIP1=%FILE1%
SET FILETOZIP2=%FILE2%
SET FILETOZIP3=%FILE3%
SET FILETOZIP4=%FILE4%
SET FILETOZIP5=%FILE5%
SET FILETOZIP6=%FILE6%
SET FILETOZIP7=%FILE7%
SET TEMPDIR=%TEMP%
RMDIR %TEMPDIR%
MKDIR %TEMPDIR%
XCOPY %FILETOZIP1% %TEMPDIR% /Y
XCOPY %FILETOZIP2% %TEMPDIR% /Y
XCOPY %FILETOZIP3% %TEMPDIR% /Y
XCOPY %FILETOZIP4% %TEMPDIR% /Y
XCOPY %FILETOZIP5% %TEMPDIR% /Y
XCOPY %FILETOZIP6% %TEMPDIR% /Y
XCOPY %FILETOZIP7% %TEMPDIR% /Y
ECHO Set objArgs = WScript.Arguments > %TEMP%\Zip.vbs
ECHO InputFolder = objArgs(0) >> %TEMP%\Zip.vbs
ECHO ZipFile = objArgs(1) >> %TEMP%\Zip.vbs
ECHO CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" ^& Chr(5) ^& Chr(6) ^& String(18, vbNullChar) >> %TEMP%\Zip.vbs
ECHO Set objShell = CreateObject("Shell.Application") >> %TEMP%\Zip.vbs
ECHO Set source = objShell.NameSpace(InputFolder).Items >> %TEMP%\Zip.vbs
ECHO objShell.NameSpace(ZipFile).CopyHere(source) >> %TEMP%\Zip.vbs
ECHO wScript.Sleep 2000 >> %TEMP%\Zip.vbs
CScript %TEMP%\Zip.vbs %TEMPDIR% "%ZIPFILE%"
Bisakah saya menerapkan a FOR
loop untuk secara zip zip tujuh file dalam direktori yang ditentukan, alih-alih mendeklarasikan masing-masing secara individual? Jika demikian, bagaimana saya harus mengintegrasikan metode ini ke dalam skrip saya?
%temp%
map. Alih-alih membuat folder acak di dalam%temp%
kamu bisard /S/Q
setelah itu.Jawaban:
Opsi ini tidak menggunakan alat pihak ke-3 yang dikenal sebagai Kzip , tetapi menyimpannya di dalam file batch menggunakan Ke dalam Batch . Ada beberapa opsi yang harus Anda perhatikan: Pengaturan untuk memodifikasi kebutuhan Anda.
Kode:
Beri tahu saya jika ada bug atau apa pun dalam kode.
Anda dapat menggunakannya tiga cara:
call TheCode.bat "FileToCopy1" "FileToCopy2"
JIKA Anda memiliki pertanyaan, beri tahu saya.
sumber