hello,
I want to compress a specific folder and togerther with a file..
let's say I'm gonna zip a file
ex.
in my desktop i have this structure
inside my compress folder I have this
Fruits
- Folder A
- a.txt
- b.txt
- Folder B
- a.txt
-b.txt
a.bin
b.bin
c.bin
I want to zip Fruits folder + b.bin into a one zip file ex.hellow.zip
then delete Fruits folder and b.bin
I think I get what I want but the problem I can't delete the Fruit folder and it's sub folder
@echo off
:compress
set path=Fruits
set path2=b.bin
set z=compressed.zip
7z.exe a -tzip compressed.zip "%path%"
7z.exe a -tzip compressed. zip "%path2%"
if exist "%path%" (
for /d %%p in ("%path%"\*.*") do rmdir "%%p" /s /Q
del /s /q %path%\*.*
thank you
help! how to compress file
Moderator: DosItHelp
Re: help! how to compress file
Never overwride the predefined path variable if you don't know for sure what you are doing!
npocmaka_'s link reminds me of a script that I wrote a couple of years ago. Adapted to your example.
Steffen
npocmaka_'s link reminds me of a script that I wrote a couple of years ago. Adapted to your example.
Code: Select all
@if (@a)==(@b) @end /* Batch part:
@echo off &setlocal
set "p1=fruits"
set "p2=b.bin"
cscript //nologo //e:jscript "%~f0" "ex.hellow.zip" "%p1%" "%p2%"
rd /s /q "%p1%"
del /f "%p2%"
exit /b
JScript part: */
if (WScript.Arguments.Count() < 2) {WScript.Quit();}
var objFSO = new ActiveXObject('Scripting.FileSystemObject'),
objWShell = new ActiveXObject('WScript.Shell'),
objShellApp = new ActiveXObject('Shell.Application');
objWShell.CurrentDirectory = objFSO.GetParentFolderName(WScript.ScriptFullName);
var strZipName = objFSO.GetAbsolutePathName(WScript.Arguments(0));
if (objFSO.GetExtensionName(strZipName).toLowerCase() != "zip") {strZipName += '.zip';}
var strZipPath = objFSO.GetParentFolderName(strZipName);
if (!objFSO.FolderExists(strZipPath)) {objFSO.CreateFolder(strZipPath);}
if (!objFSO.FileExists(strZipName)) {
var objF = objFSO.OpenTextFile(strZipName, 2, true, 0);
objF.Write('PK\5\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
objF.Close();
}
var strTemp = objWShell.ExpandEnvironmentStrings('%temp%'),
objTemp = objShellApp.NameSpace(strTemp),
objZip = objShellApp.NameSpace(strZipName);
for (var n = 1; n < WScript.Arguments.Count(); ++n) {
var F = objFSO.GetAbsolutePathName(WScript.Arguments(n));
if (objFSO.FileExists(F) || objFSO.FolderExists(F)) {AddToZip(F);}
}
function AddToZip(strFName) {
var strName = objFSO.GetFileName(strFName),
EraseF = objZip.ParseName(strName),
i = 0;
if (EraseF != null) {
if (objFSO.FileExists(strTemp + '\\' + strName)) {objFSO.DeleteFile(strTemp + '\\' + strName, true);}
if (objFSO.FolderExists(strTemp + '\\' + strName)) {objFSO.DeleteFolder(strTemp + '\\' + strName, true);}
i = objZip.Items().Count;
objTemp.MoveHere(EraseF.Path, 1548);
while (objZip.Items().Count == i) {WScript.Sleep(100);}
if (objFSO.FileExists(strTemp + '\\' + strName)) {objFSO.DeleteFile(strTemp + '\\' + strName, true);}
if (objFSO.FolderExists(strTemp + '\\' + strName)) {objFSO.DeleteFolder(strTemp + '\\' + strName, true);}
}
i = objZip.Items().Count;
objZip.CopyHere(strFName, 1548);
while (objZip.Items().Count == i) {WScript.Sleep(100);}
}
Steffen
Re: help! how to compress file
got problem b.bin doesn't add to ex.hellow.zip
Re: help! how to compress file
Sorry but I can't reproduce your problem.
Steffen
before:
after:
Steffen
before:
after: