Oppure

Loading
13/07/10 18:03
edddy92
Ciao a tutti sto cercando di creare un programma(.vbs) che prenda i file di un certo mese e archiviarli.I file si trovano in una cartella chiamata "Orig" poi i file verrano copiati separati in cartelle diverse dentro alla cartella "test" le cartelle con i file copiti verrano poi archiviati. il problema sta nel fatto che il mio programma dev'essere indipendente mentre nell mio ci deve essere qualcuno che confermi le msgbox...ho messo le msgbox neipezzi di codice dove archivia i file.Cosi che il programma si fermi x il tempo necessario all'archiviazione .ho provato a usare sendkey per chiudere la msgbox ma nn funziona...le scelte sono 2:o trovo il modo per chudere le msgbox o ne faccio a meno però devo fare in modo che il programma si fermi per archiviare ...e nn vorrei usare il comando sleep ...anke perche la dimensione dei file puo cambiare....

ScriptFullName = wscript.scriptfullname
CurrentPath = Left(scriptfullname, InStrRev(ScriptFullName, "\"))

ZipFile = CurrentPath & "test1.zip"
ZipFile2 = CurrentPath & "test2.zip"


Set wsc = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Users\utente\Desktop\orig")
b=fso.CreateFolder("C:\Users\utente\Desktop\test\test1")
b=fso.CreateFolder("C:\Users\utente\Desktop\test\test2")

Set files = folder.Files
For Each file in files
FileDaAggiungere = file
FolderDaZippare ="C:\Users\utente\Desktop\test\test1\"  

FolderDaZippare2 ="C:\Users\utente\Desktop\test\test2\"  

'Crea un file zip vuoto.
a = CreateEmptyZip(ZipFile)
'Crea un file zip vuoto.
a = CreateEmptyZip(ZipFile2)

    If DateDiff("d", file.DateLastModified,"07/07/2010" ) < 0 And DateDiff("d", file.DateLastModified,"10/07/2010" ) > 0  Then
    	
        file.Copy "C:\Users\eddy\Desktop\test\test1\"
elseIf DateDiff("d", file.DateLastModified,"06/07/2010" ) > 0 Then
    	
        file.Copy "C:\Users\utente\Desktop\test\test2\"
    End If
next

WScript.Sleep(1000)

a= AddFolder2Zip (ZipFile, FolderDaZippare)

msgbox a

a= AddFolder2Zip (ZipFile2, FolderDaZippare2)

msgbox a






'**********************************
'*************FUNZIONI*************
Function CreateEmptyZip(sPathName)
'Create empty Zip File.
'Crea un file zip vuoto.
	Dim fso, fp
	Const ForWriting  = 2 'Apre un file in scrittura.
	CreateEmptyZip = True 'se tutto va bene resta true.
	On Error Resume Next
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set fp = fso.OpenTextFile( sPathName, ForWriting, True )
  	If Err <> 0 Then
		Set opfs = Nothing
		CreateEmptyZip=False
		Exit Function 'Errore nella creazione
	end if
  	fp.Write Chr(80) & Chr(75) & Chr(5) & Chr(6) & String(18, 0)
  	If Err <> 0 Then
		Set opfs = Nothing
		CreateEmptyZip=False
		Exit Function 'errore nella scrittura
	End If
  	fp.Close 'Chiude il file, altrimenti non si può usare.
  	Set fso = Nothing
	Err.Clear
End Function 

Function AddFolder2Zip (ZipFile, Folder)
	'Copia il contenuto di una cartella in un file zip.
	'Il folder deve essere indicato con pathname completo
	'e terminare con un "\"
	'Zipfile deve essere indicato con pathname completo.
	AddFolder2Zip=True
	Set oApp = CreateObject("Shell.Application")
	'Copia il contenuto della cartella nello zip.
	Set oFolder = oApp.NameSpace(Folder)
	If Not oFolder Is Nothing Then
		oApp.NameSpace(ZipFile).CopyHere oFolder.Items
	End If
	If Err <>0 Then AddFolder2Zip=False
End Function
Function AddFile2Zip (sZipFile, sFile2Add)
	'Aggiunge un file all'archivio zip esistente.
	'Attenzione: di default il metodo CopyFile sovrascrive.
	'NameSpace vuole un pathname completo e non solo il nome file.
	On Error Resume Next
	AddFile2Zip = True
	Set oApp = createobject("Shell.Application")
	oApp.NameSpace(sZipFile).CopyHere sFile2Add
	If Err<>0 Then AddFile2Zip=False
End Function

Function AddFolder2Zip (ZipFile, Folder)
	'Copia il contenuto di una cartella in un file zip.
	'Il folder deve essere indicato con pathname completo
	'e terminare con un "\"
	'Zipfile deve essere indicato con pathname completo.
	AddFolder2Zip=True
	Set oApp = CreateObject("Shell.Application")
	'Copia il contenuto della cartella nello zip.
	Set oFolder = oApp.NameSpace(Folder)
	If Not oFolder Is Nothing Then
		oApp.NameSpace(ZipFile).CopyHere oFolder.Items
	End If
	If Err <>0 Then AddFolder2Zip=False
End Function
Function AddFile2Zip (sZipFile, sFile2Add)
	'Aggiunge un file all'archivio zip esistente.
	'Attenzione: di default il metodo CopyFile sovrascrive.
	'NameSpace vuole un pathname completo e non solo il nome file.
	On Error Resume Next
	AddFile2Zip = True
	Set oApp = createobject("Shell.Application")
	oApp.NameSpace(sZipFile).CopyHere sFile2Add
	If Err<>0 Then AddFile2Zip=False
End Function


se c'è qualcuno che mi puo aiutare gliene sarei grato. :rofl:
aaa
13/07/10 18:55
Alfonso
Non so se VBScript sia proprio come il linguaggio vb6, ma visto che alla function AddFolder2Zip (ZipFile, Folder) dai un valore vero se va a buon fine o falso in caso di errore, non puoi scrivere
if AddFolder2Zip (ZipFile, FolderDaZippare)  = True then
    AddFolder2Zip (ZipFile2, FolderDaZippare2) 
end if
Ultima modifica effettuata da Alfonso 13/07/10 18:56
aaa
14/07/10 12:22
edddy92
:k: grz1000...funziona davvero...
addesso mi è rimasto soltanto un problemma ....come faccio a chiudere un msgbox?
esiste qualche commando per chiudere i msgbox? grz in anticipo...
aaa
14/07/10 13:06
Alfonso
Ma a cosa ti serve ora il MsgBox?
Ripeto: non so VBScript, in vb6 con l'uso di Api si potrebbe cercare la finestra della msbbox e killarla.
Oppure bypassare il problema usando una propria form per mostrare il messaggio, con incorporato un timer che la chiude dopo un tot.
aaa
14/07/10 19:06
edddy92
nnte nn serve + in pratica dovevo lasciarli comunque un msgbox alla fine dell programma x farlo fermare e dargli il tempo di copiare i file......ma mi sono reso conto che si puo fare anche in un 'altro modo cioè utilizando un do until con dentro un sleep......cosi il programma si ferma finche non finisce di copiare i file...
aaa