2013-11-10 103 views
0

我正在嘗試使用批處理文件將特定目錄中的所有文件和文件夾壓縮到一個壓縮文件夾中而沒有使用WinRAR,WinZip或7Zip。如何在沒有WinRAR,Winzip或7zip的情況下批量壓縮文件?

更具體地說: 比方說,我有一個名爲文件\ 文件夾,我想創建一個拉鍊在文件\一切到一個新的.zip文件稱爲類似的文件\文件夾中的批處理文件「MyZippedFile 。壓縮」。

任何幫助將不勝感激!

+0

VBS腳本可以歸檔爲.ZIP - 爲什麼不能使用歸檔程序? – foxidrive

+1

我無法使用存檔器,因爲將要使用該腳本的人可能沒有在他們的計算機上安裝任何存檔器...... - 這不是問題嗎? – user2972067

+0

這只是一個存檔器是計算機中的重要工具,而免費的工具是很好的。 – foxidrive

回答

0

拉鍊是文件夾。這從一個fodler複製到另一個。

'Zip.vbs - needs an existing zip file 
Set objShell = CreateObject("Shell.Application") 
Set Ag=Wscript.Arguments 
set WshShell = WScript.CreateObject("WScript.Shell") 

Set SrcFldr=objShell.NameSpace(Ag(1)) 
Set DestFldr=objShell.NameSpace(Ag(0)) 
Set FldrItems=SrcFldr.Items 
DestFldr.CopyHere FldrItems, &H214 
Msgbox "Finished" 

'Unzip.vbs - needs existing unzip directory 
Set objShell = CreateObject("Shell.Application") 
Set Ag=Wscript.Arguments 
set WshShell = WScript.CreateObject("WScript.Shell") 

Set DestFldr=objShell.NameSpace(Ag(1)) 
Set SrcFldr=objShell.NameSpace(Ag(0)) 
Set FldrItems=SrcFldr.Items 
DestFldr.CopyHere FldrItems, &H214 
Msgbox "Finished" 

'CreateBlankZip.vbs 
Set Ag=Wscript.Arguments 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set ts = fso.OpenTextFile(Ag(0), 8, vbtrue) 
BlankZip = "PK" & Chr(5) & Chr(6) 
For x = 0 to 17 
    BlankZip = BlankZip & Chr(0) 
Next 
ts.Write BlankZip 
+0

嗨大衛 - 這似乎非常有幫助,但我似乎仍然無法讓它工作...我爲我的無知道歉。您編寫的這個腳本是否包含在.vbs或.bat文件中?當你說「'Zip.vbs - 需要一個現有的壓縮文件'和''Unzip.vbs - 需要一個現有的解壓目錄'和'CreateBlankZip.vbs' - 是我需要創建的獨立文件或者是這個一個大文件? – user2972067

0

我創建了zipping files from different folders preserving the directory structure發現VBS腳本備份目錄文件只使用內置的寡婦壓縮功能。它只能壓縮文件和文件夾,不解壓縮。保持文件夾完好無損。

將代碼放在一個文件中(例如BackZip.vbs),並使用wscript.exe執行它,該代碼包含在大多數使用.NET的計算機中。 (如wscript.exe BackZip.vbs /X "C:\My Folder\")它只需要2005年發佈的.NET 2.0或更高版本。

很多代碼圍繞處理單個文件,但如果你只是在做文件夾,你可以刪除很多碼。

相關問題