|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I have C:\Data\*.* and wanting to save it to zip file thru windows
script. Is this possible? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
"M P" <mponteres@gmail.com> wrote in message news:1189479273.999620.23430@d55g2000hsg.googlegro ups.com... >I have C:\Data\*.* and wanting to save it to zip file thru windows > script. Is this possible? > This item slightly modified should be able to do it. http://groups.google.com/group/micro...c?dmode=source I'm not sure you can copy all files in a folder at once. You may have to loop through them. I have modified the above somewhat. Const MyZip = "C:\test.zip" Const File1 = "C:\Data\test1.txt" Const File2 = "C:\Data\test2.txt" '-------------- create empty zip file --------- CreateObject("Scripting.FileSystemObject") _ .CreateTextFile(MyZip, True) _ .Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) '-------------- zip the files ------------------ With CreateObject("Shell.Application") 'add files .NameSpace(MyZip).CopyHere File1 .NameSpace(MyZip).CopyHere File2 End With wScript.Sleep 1000 LJB |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
"M P" <mponteres@gmail.com> wrote in message
news:1189479273.999620.23430@d55g2000hsg.googlegro ups.com... > I have C:\Data\*.* and wanting to save it to zip file thru windows > script. Is this possible? Here's the URL of a scriptable zip program: http://www.7-zip.org/ Will this ? Option Explicit '* '* Declare Variables '* Const cVBS = "7z.vbs" Const cEXE = "7z.exe" Const cFOL = "C:\Data\*.*" '= path of files to zip Const cBAT = "7z_.bat" Const cZIP = "7z_.zip" Const cTXT = "7z_.txt" Const cLOG = "7z_.log" '* '* Declare Variables '* Dim strDIR strDIR = WScript.ScriptFullName strDIR = Left(strDIR,InStrRev(strDIR,"\")) Dim intFIL intFIL = 0 Dim strFIL Dim strFOL strFOL = Replace(cFOL,"*.*","") '* '* Declare Objects '* Dim objCTF Dim objFIL Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objGFO Dim objOTF Dim objWSS '* '* Delete Files '* If objFSO.FileExists(strDIR & cTXT) Then objFSO.DeleteFile(strDIR & cTXT) End If If objFSO.FileExists(strDIR & cBAT) Then objFSO.DeleteFile(strDIR & cBAT) End If If objFSO.FileExists(strDIR & cLOG) Then objFSO.DeleteFile(strDIR & cLOG) End If If objFSO.FileExists(strDIR & cZIP) Then objFSO.DeleteFile(strDIR & cZIP) End If '* '* Identify Files '* Set objOTF = objFSO.OpenTextFile(strDIR & cTXT,2,True) Set objGFO = objFSO.GetFolder(strFOL) Set objFIL = objGFO.Files For Each strFIL in objFIL objOTF.WriteLine(strFOL & strFIL.Name) intFIL = intFIL + 1 Next Set objFIL = Nothing Set objGFO = Nothing Set objOTF = Nothing '* '* Create Batch File '* Set objCTF = objFSO.CreateTextFile(strDIR & cBAT,true) objCTF.WriteLine(cEXE & " a " & cZIP & " @" & cTXT & " >> " & cLOG) objCTF.WriteLine(cEXE & " l " & cZIP & " >> " & cLOG) Set objCTF = Nothing '* '* Run Batch File '* Set objWSS = CreateObject("WScript.Shell") objWSS.Run "%comspec% /C " & cBAT,7,True Set objWSS = Nothing '* '* Destroy Objects '* Set objFSO = Nothing '* '* Finish Message '* MsgBox intfil & " files zipped.",vbInformation,cVBS |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Have tried this one and found working on my requierement. Thanks a
lot. Btw, another question, how about including subfolders on the zip file? Is this possible on your provided script? On Sep 11, 8:23 pm, "LJB" <.> wrote: > "M P" <> wrote in message > > news:1189479273.999620.23430@d55g2000hsg.googlegro ups.com... > > >I have C:\Data\*.* and wanting to save it to zip file thru windows > > script. Is this possible? > > This item slightly modified should be able to do it. > > http://groups.google.com/group/micro...ng.vbscript/ms... > > I'm not sure you can copy all files in a folder at once. You may have to > loop through them. > > I have modified the above somewhat. > > Const MyZip = "C:\test.zip" > Const File1 = "C:\Data\test1.txt" > Const File2 = "C:\Data\test2.txt" > > '-------------- create empty zip file --------- > CreateObject("Scripting.FileSystemObject") _ > .CreateTextFile(MyZip, True) _ > .Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) > > '-------------- zip the files ------------------ > With CreateObject("Shell.Application") > 'add files > .NameSpace(MyZip).CopyHere File1 > .NameSpace(MyZip).CopyHere File2 > End With > wScript.Sleep 1000 > > LJB |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Thanks for your response but the script is kinda complicated. I have
found the previous post which is much simpler.\ On Sep 11, 10:19 pm, "McKirahan" <N...@McKirahan.com> wrote: > "M P" <mponte...@gmail.com> wrote in message > > news:1189479273.999620.23430@d55g2000hsg.googlegro ups.com... > > > I have C:\Data\*.* and wanting to save it to zip file thru windows > > script. Is this possible? > > Here's the URL of a scriptable zip program: http://www.7-zip.org/ > > Will this ? > > Option Explicit > '* > '* Declare Variables > '* > Const cVBS = "7z.vbs" > Const cEXE = "7z.exe" > Const cFOL = "C:\Data\*.*" '= path of files to zip > Const cBAT = "7z_.bat" > Const cZIP = "7z_.zip" > Const cTXT = "7z_.txt" > Const cLOG = "7z_.log" > '* > '* Declare Variables > '* > Dim strDIR > strDIR = WScript.ScriptFullName > strDIR = Left(strDIR,InStrRev(strDIR,"\")) > Dim intFIL > intFIL = 0 > Dim strFIL > Dim strFOL > strFOL = Replace(cFOL,"*.*","") > '* > '* Declare Objects > '* > Dim objCTF > Dim objFIL > Dim objFSO > Set objFSO = CreateObject("Scripting.FileSystemObject") > Dim objGFO > Dim objOTF > Dim objWSS > '* > '* Delete Files > '* > If objFSO.FileExists(strDIR & cTXT) Then > objFSO.DeleteFile(strDIR & cTXT) > End If > If objFSO.FileExists(strDIR & cBAT) Then > objFSO.DeleteFile(strDIR & cBAT) > End If > If objFSO.FileExists(strDIR & cLOG) Then > objFSO.DeleteFile(strDIR & cLOG) > End If > If objFSO.FileExists(strDIR & cZIP) Then > objFSO.DeleteFile(strDIR & cZIP) > End If > '* > '* Identify Files > '* > Set objOTF = objFSO.OpenTextFile(strDIR & cTXT,2,True) > Set objGFO = objFSO.GetFolder(strFOL) > Set objFIL = objGFO.Files > For Each strFIL in objFIL > objOTF.WriteLine(strFOL & strFIL.Name) > intFIL = intFIL + 1 > Next > Set objFIL = Nothing > Set objGFO = Nothing > Set objOTF = Nothing > '* > '* Create Batch File > '* > Set objCTF = objFSO.CreateTextFile(strDIR & cBAT,true) > objCTF.WriteLine(cEXE & " a " & cZIP & " @" & cTXT & " >> " & cLOG) > objCTF.WriteLine(cEXE & " l " & cZIP & " >> " & cLOG) > Set objCTF = Nothing > '* > '* Run Batch File > '* > Set objWSS = CreateObject("WScript.Shell") > objWSS.Run "%comspec% /C " & cBAT,7,True > Set objWSS = Nothing > '* > '* Destroy Objects > '* > Set objFSO = Nothing > '* > '* Finish Message > '* > MsgBox intfil & " files zipped.",vbInformation,cVBS |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
It worked for me with a folder of a few small files but seemed to fail with
large files. I'm not sure why that would be. LJB "M P" <mponteres@gmail.com> wrote in message news:1190012832.184304.147090@o80g2000hse.googlegr oups.com... > Have tried this one and found working on my requierement. Thanks a > lot. > > Btw, another question, how about including subfolders on the zip file? > Is this possible on your provided script? > > On Sep 11, 8:23 pm, "LJB" <.> wrote: >> "M P" <> wrote in message >> >> news:1189479273.999620.23430@d55g2000hsg.googlegro ups.com... >> >> >I have C:\Data\*.* and wanting to save it to zip file thru windows >> > script. Is this possible? >> >> This item slightly modified should be able to do it. >> >> http://groups.google.com/group/micro...ng.vbscript/ms... >> >> I'm not sure you can copy all files in a folder at once. You may have to >> loop through them. >> >> I have modified the above somewhat. >> >> Const MyZip = "C:\test.zip" >> Const File1 = "C:\Data\test1.txt" >> Const File2 = "C:\Data\test2.txt" >> >> '-------------- create empty zip file --------- >> CreateObject("Scripting.FileSystemObject") _ >> .CreateTextFile(MyZip, True) _ >> .Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) >> >> '-------------- zip the files ------------------ >> With CreateObject("Shell.Application") >> 'add files >> .NameSpace(MyZip).CopyHere File1 >> .NameSpace(MyZip).CopyHere File2 >> End With >> wScript.Sleep 1000 >> >> LJB > > |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Have tried it prompt me with an error:
Object required: 'NameSpace(...)' Code 800A01A8 my Files are: sFile1 = "C:\Data1" sFile2 = "C:\Data2" sFile3 = "C:\Data3" These are folders with subfolders and files. Hope you might . On Sep 17, 8:47 pm, "LJB" <.> wrote: > It worked for me with a folder of a few small files but seemed to fail with > large files. I'm not sure why that would be. > > LJB > > "M P" <mponte...@gmail.com> wrote in message > > news:1190012832.184304.147090@o80g2000hse.googlegr oups.com... > > > Have tried this one and found working on my requierement. Thanks a > > lot. > > > Btw, another question, how about including subfolders on the zip file? > > Is this possible on your provided script? > > > On Sep 11, 8:23 pm, "LJB" <.> wrote: > >> "M P" <> wrote in message > > >>news:1189479273.999620.23430@d55g2000hsg.googleg roups.com... > > >> >I have C:\Data\*.* and wanting to save it to zip file thru windows > >> > script. Is this possible? > > >> This item slightly modified should be able to do it. > > >>http://groups.google.com/group/micro...ng.vbscript/ms... > > >> I'm not sure you can copy all files in a folder at once. You may have to > >> loop through them. > > >> I have modified the above somewhat. > > >> Const MyZip = "C:\test.zip" > >> Const File1 = "C:\Data\test1.txt" > >> Const File2 = "C:\Data\test2.txt" > > >> '-------------- create empty zip file --------- > >> CreateObject("Scripting.FileSystemObject") _ > >> .CreateTextFile(MyZip, True) _ > >> .Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) > > >> '-------------- zip the files ------------------ > >> With CreateObject("Shell.Application") > >> 'add files > >> .NameSpace(MyZip).CopyHere File1 > >> .NameSpace(MyZip).CopyHere File2 > >> End With > >> wScript.Sleep 1000 > > >> LJB |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
I tried something similar to the following. If C:\Data1 contained a few
small files it would work for me and I'd end up with all the files in one ..zip as I expected. If the files were large I'd end up with a valid zip file only containing C:\Data2\test.txt and another odd named file without an extension. Opening it in a text editor it would appear to be a zip file but after adding the .zip extension it still would not open with WinZip. I don't have any idea what might be wrong. sFile1 = "C:\Data1" sFile2 = "C:\Data2\test.txt" "M P" <mponteres@gmail.com> wrote in message news:1190080271.784162.274640@o80g2000hse.googlegr oups.com... > Have tried it prompt me with an error: > > Object required: 'NameSpace(...)' > Code 800A01A8 > > my Files are: > > sFile1 = "C:\Data1" > sFile2 = "C:\Data2" > sFile3 = "C:\Data3" > > These are folders with subfolders and files. Hope you might . > > > On Sep 17, 8:47 pm, "LJB" <.> wrote: >> It worked for me with a folder of a few small files but seemed to fail >> with >> large files. I'm not sure why that would be. >> >> LJB >> >> "M P" <mponte...@gmail.com> wrote in message >> >> news:1190012832.184304.147090@o80g2000hse.googlegr oups.com... >> >> > Have tried this one and found working on my requierement. Thanks a >> > lot. >> >> > Btw, another question, how about including subfolders on the zip file? >> > Is this possible on your provided script? >> >> > On Sep 11, 8:23 pm, "LJB" <.> wrote: >> >> "M P" <> wrote in message >> >> >>news:1189479273.999620.23430@d55g2000hsg.googleg roups.com... >> >> >> >I have C:\Data\*.* and wanting to save it to zip file thru windows >> >> > script. Is this possible? >> >> >> This item slightly modified should be able to do it. >> >> >>http://groups.google.com/group/micro...ng.vbscript/ms... >> >> >> I'm not sure you can copy all files in a folder at once. You may have >> >> to >> >> loop through them. >> >> >> I have modified the above somewhat. >> >> >> Const MyZip = "C:\test.zip" >> >> Const File1 = "C:\Data\test1.txt" >> >> Const File2 = "C:\Data\test2.txt" >> >> >> '-------------- create empty zip file --------- >> >> CreateObject("Scripting.FileSystemObject") _ >> >> .CreateTextFile(MyZip, True) _ >> >> .Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) >> >> >> '-------------- zip the files ------------------ >> >> With CreateObject("Shell.Application") >> >> 'add files >> >> .NameSpace(MyZip).CopyHere File1 >> >> .NameSpace(MyZip).CopyHere File2 >> >> End With >> >> wScript.Sleep 1000 >> >> >> LJB > > |
|
![]() |
| Outils de la discussion | |
|
|