Torna indietro   Hardware Upgrade Forum > Software > Microsoft Windows > Microsoft Windows 7 e Vista

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-09-2014, 17:35   #1
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Azione automatica

Ho da fare un lungo e ripetitivo lavoro...inserire molti cd e copiare tutti i file sul cd in una cartella su hd.
Come posso fare in automatico solo cambiando il cd?
Ho scoperto la funzione Utilità di Pianificazione ma mi sa che non c'è questa operazione.
Al momento l'unica azione automatica che ho ottenuto è quella di aprire i cd per vederne il contenuto. Poi devo selezionare i file e trascinarli nella solita cartella.

Sapete se c'è un programma o un'azione automatica per fare questo?
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2014, 19:34   #2
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
Ti farò una sola parte del VBS, la seconda ( cioè quella relativa alla copia dal DVD alla cartella ) la lascio a te, con un minimo di impegno ci riuscirai da solo
Codice:
' x_Master_x
Dim sDrive
sDrive="E:" ' Cambia con la lettera del tuo lettore DVD

Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   WScript.echo "Il drive " & sDrive & " non è stato trovato"
   WScript.Quit
End If

Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
WScript.Echo "Il drive " & sDrive & " è pronto per l'uso"
Una volta eseguito lo script con il doppio click, lo stesso controlla automaticamente la lettera E: ed aspetta che inserisci un DVD. Una volta che trova un DVD, ti apparirà il messaggio "Il drive E: è pronto per l'uso" che sostituirai con la copia della cartella che lascio a te.
Una volta effettuata la copia, non ti resta altro che espellere il DVD, avviare nuovamente il VBS, inserire il DVD ed aspettare che finisca la copia...così via.
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2014, 21:44   #3
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Non so bene di cosa parli ma ci ho provato cercando su Google.
Può essere corretto così?

Codice:
Dim sDrive
sDrive="F:"

Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   WScript.echo "Il drive " & sDrive & " non è stato trovato"
   WScript.Quit
End If

Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "F:\*.xls" , "E:\archivio\" , OverwriteExisting
WScript.echo "copia F finita"
Partendo invece dalle basi...
- devo creare un file di testo con il blocco note e rinominarlo in script.vbs?
- inserisco il cd, faccio doppio click sul file script.vbs e parte la copia dopodiché cambio cd e riclicco due volte sul file script.vbs, esatto?
- per velocizzare ho recuperato un altro lettore cd/dvd...posso creare un secondo script2.vbs (ovviamente cambiando lettera del lettore) ed eseguirlo in contemporanea?

Comunque grazie per la dritta!

EDIT:
Mi rispondo per alcune domande:
- sì funziona
- a me funziona così
- anche il secondo script funziona in contemporanea

Grazie per la lezione!

Ultima modifica di Cetto La Qualunque : 07-09-2014 alle 22:03.
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2014, 11:08   #4
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
Ben fatto, io la copia l'avrei fatta con una barra di progresso:
Codice:
' x_Master_x
sTarget = "C:\Destination" 
sOrigin = "C:\Origin"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(sTarget) 

objFolder.CopyHere sOrigin & "\*.*"
WScript.Echo "Copia finita"
Folder.CopyHere method

A quel punto probabilmente avrei aggiuto una subroutine per evitare di aprire-chiudere il VBS ma questa è un'altra lezione
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2014, 14:03   #5
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Quindi sostituire le mie ultime 4 righe con quello che hai fatto tu?

Codice:
Dim sDrive
sDrive="F:"

Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   WScript.echo "Il drive " & sDrive & " non è stato trovato"
   WScript.Quit
End If

Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
sTarget = "E:\archivio" 
sOrigin = "F:"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(sTarget) 

objFolder.CopyHere sOrigin & "\*.xls"
WScript.Echo "Copia finita"
Mentre la subroutine invece a cosa servirebbe? Ad evitare il doppio click sul file script.vbs ogni volta che ho cambiato il cd?
Accetto volentieri suggerimenti pur di semplificare ulteriormente la luuuuuunga operazione.

EDIT:
Ho trovato questo per aprire il lettore cd:
Codice:
CreateObject(“WMPlayer.OCX.7″).cdromCollection.Item(0).eject
Può andare bene al posto di
Codice:
WScript.Echo "Copia finita"
?

EDIT2:
No, non va, mi sa che è un po' più complicato...ho trovato questo ma va a cercare tutti i drive:
Codice:
Set oWMP = CreateObject("WMPlayer.OCX.7")

Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count > 0 then
    for i=0 to colCDROMs.Count - 1
	strDrive= oWMP.cdromCollection.item(i).driveSpecifier
	strQuestion = "Espellere drive " & strDrive & "?"
	answer= msgbox (strQuestion, vbOKCancel)
	if answer= vbOK then 
	    colCDROMs.Item(i).Eject
	    strQuestion = "Chiudere drive " & strDrive & "?"
	    answer= msgbox (strQuestion, vbOKCancel)
	    if answer= vbOK then colCDROMs.Item(i).Eject
	end if
    next
end if
wscript.quit
Io vorrei far espellere il cd alla fine della copia e far ripartire la copia quando chiudo il lettore con un nuovo cd.

Ultima modifica di Cetto La Qualunque : 08-09-2014 alle 17:11.
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2014, 20:31   #6
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
Esempio di subroutine:
Codice:
' x_Master_x
Call MySub_1

Sub MySub_1()
  WScript.Echo "Passaggio 1"
  Call MySub_2
End Sub

Sub MySub_2()
  WScript.Echo "Passaggio 2"
  Call MySub_3
End Sub

Sub MySub_3()
  WScript.Echo "Passaggio 3"
  Call TheEnd
End Sub

Sub TheEnd()
  result = MsgBox ("Operazioni concluse. Ripetere da zero?", vbYesNo, "Attenzione")
   Select Case result
     Case vbYes
       Call MySub_1
     Case vbNo
       WScript.Quit
   End Select
End Sub
Questo serve per espellere un DVD da una specifica lettera:
Codice:
' x_Master_x
sLetter = "D:" ' Da cambiare con la lettera del lettore

Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection

If colCDROMs.Count > 0 then
    For i=0 to colCDROMs.Count - 1
         sDrive = oWMP.cdromCollection.item(i).driveSpecifier
         If sDrive = sLetter Then
            colCDROMs.Item(i).Eject
         End If
    Next
End If
Questa è la versione "corta"
Codice:
' x_Master_x
sLetter = "D:" ' Da cambiare con la lettera del lettore

Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
Set oCD = oWMP.cdromCollection.getByDriveSpecifier(sLetter)
oCD.Eject
Le ultime due, entrambe, funzionano correttamente. Credo che come "lezioni" siamo apposto, ora tocca a te
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.

Ultima modifica di x_Master_x : 09-09-2014 alle 14:13.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2014, 20:53   #7
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Sì le ultime 2 funzionano correttamente.
Ora devo provare a comporre i vari passaggi, ossia:
1- copia da F: a E:
2- espelli carrello
3- quando il carrello rientra riparti dal passaggio 1
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2014, 21:05   #8
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Codice:
' x_Master_x
Call MySub_1

Sub MySub_1()
  sDrive="F:"

Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   Call TheEnd
End If

Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "F:\*.xls" , "E:\archivio\" , OverwriteExisting

  Call MySub_2
End Sub

Sub MySub_2()
  Set oWMP = CreateObject("WMPlayer.OCX.7")

sLetter = "F:" 

Set colCDROMs = oWMP.cdromCollection
Set oCD = oWMP.cdromCollection.getByDriveSpecifier(sLetter)
oCD.Eject
  Call MySub_3
End Sub

Sub MySub_3()
  Call TheEnd
End Sub

Sub TheEnd()
  result = MsgBox ("Copia F finita. Ripetere da zero?", vbYesNo, "Attenzione")
   Select Case result
     Case vbYes
       Call MySub_1
     Case vbNo
       WScript.Quit
   End Select
End Sub
Passaggio 1 ,2 e 3 funzionano correttamente...copia,apre il carrello e mi chiede se voglio ripartire. Io inserisco e dico di sì e riparte la copia.
Ora devo vedere come sostituire il terzo passaggio...come posso fare per fargli capire di ripartire dal passaggio 1 quando il carrello è rientrato?

Ultima modifica di Cetto La Qualunque : 08-09-2014 alle 22:07.
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2014, 09:36   #9
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
?

Codice:
Sub TheEnd()
    Call MySub_1
End Sub
Però in questo modo non puoi uscire dallo script senza terminarlo dal Task Manager. Ti consiglio di separare meglio le subroutine ( una per controllare che la lettera esista aka fso.DriveExists, una il Do...Loop che aspetta che il lettore abbia un DVD inserito, una per la copia, una per espellere il DVD e l'ultima per ripetere la prima operazione ) e infine di dargli un nome comprensibile, Verifica() Copia() etc.
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2014, 11:07   #10
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Penso di aver riordinato meglio. Non ho capito bene però la chiusura che mi hai indicato...in teoria non riparte se dico sì e si interrompe tutto se dico no?

Codice:
' x_Master_x
Call 1_Verifica

Sub 1_Verifica()
  sDrive="F:"
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   Call TheEnd
End If
  Call 2_Lettore
End Sub

Sub 2_Lettore()
Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
  Call 3_Copia
End Sub

Sub 3_Copia()
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "F:\*.xls" , "E:\archivio\" , OverwriteExisting
  Call 4_Espelli
End Sub

Sub 4_Espelli()
  Set oWMP = CreateObject("WMPlayer.OCX.7")
sLetter = "F:" 
Set colCDROMs = oWMP.cdromCollection
Set oCD = oWMP.cdromCollection.getByDriveSpecifier(sLetter)
oCD.Eject
  Call 5_Finale
End Sub

Sub 5_Finale()
  result = MsgBox ("Copia F finita. Ripetere da zero?", vbYesNo, "Attenzione")
   Select Case result
     Case vbYes
       Call 1_Verifica
     Case vbNo
       WScript.Quit
   End Select
End Sub

Per la barra di progresso della copia è un casino? Ho provato a cercare ma non ho trovato nulla di chiaro (soprattutto al mio livello ). Pensavo di far comparire la solita finestra di avanzamento quando si copiano i file solitamente.
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2014, 13:09   #11
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
Quote:
Originariamente inviato da Cetto La Qualunque Guarda i messaggi
Penso di aver riordinato meglio. Non ho capito bene però la chiusura che mi hai indicato...in teoria non riparte se dico sì e si interrompe tutto se dico no?
Esatto, era riferito alla domanda "come posso fare per fargli capire di ripartire dal passaggio 1 quando il carrello è rientrato" cioè richiamare Sub 1_Verifica() direttamente quando aveva finito la copia, il carrello che sia fuori o dentro non importa tanto ricerca sempre se è presente un DVD nel lettore.
Lascia come l'ho scritto in precedenza comunque, era solo un esempio.

Quote:
Originariamente inviato da Cetto La Qualunque Guarda i messaggi
Per la barra di progresso della copia è un casino?
Te l'ho già scritta, post #4
La copi-incolli nella Sub 3_Copia() cambiando i percorsi con i tuoi, è la stessa barra di progresso che usa Windows

P.S. C'è un errore:
Codice:
If Not fso.DriveExists(sDrive) Then
   Call TheEnd
End If
Dovrebbe essere:
Codice:
If Not fso.DriveExists(sDrive) Then
   WScript.Echo "Il drive " & sDrive & " non è stato trovato"
   WScript.Quit
End If
Se non trova il lettore è inutile continuare, deve uscire.
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.

Ultima modifica di x_Master_x : 09-09-2014 alle 13:12.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2014, 13:24   #12
Cetto La Qualunque
Senior Member
 
L'Avatar di Cetto La Qualunque
 
Iscritto dal: May 2005
Messaggi: 329
Ok, spero di aver capito le correzioni. Grazie ancora per la disponibilità!
Già sto velocizzando di molto il lavoro grazie al tuo aiuto!

Codice:
' x_Master_x
Call 1_Verifica


Sub 1_Verifica()
  sDrive="F:"
Set fso=WScript.CreateObject("Scripting.FileSystemObject")
If Not fso.DriveExists(sDrive) Then
   WScript.Echo "Il drive " & sDrive & " non è stato trovato"
   WScript.Quit
End If
  Call 2_Lettore
End Sub


Sub 2_Lettore()
Do While fso.GetDrive(sDrive).IsReady=0
  WScript.Sleep 1000
Loop
  Call 3_Copia
End Sub


Sub 3_Copia()
Const OverwriteExisting = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "F:\*.xls" , "E:\archivio\" , OverwriteExisting

sTarget = "E:\archivio\" 
sOrigin = "F:"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(sTarget) 

objFolder.CopyHere sOrigin & "\*.xls"
  Call 4_Espelli
End Sub


Sub 4_Espelli()
  Set oWMP = CreateObject("WMPlayer.OCX.7")
sLetter = "F:" 
Set colCDROMs = oWMP.cdromCollection
Set oCD = oWMP.cdromCollection.getByDriveSpecifier(sLetter)
oCD.Eject
  Sub 1_Verifica
End Sub
Cetto La Qualunque è offline   Rispondi citando il messaggio o parte di esso
Old 09-09-2014, 14:10   #13
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8697
Codice:
Sub 3_Copia()
  sTarget = "E:\archivio" 
  sOrigin = "F:"

  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.NameSpace(sTarget) 

  objFolder.CopyHere sOrigin & "\*.xls"
  Call 4_Espelli
End Sub
Nella tua versione hai messo 2 volte la copia, per il resto sei apposto così.

P.S. Ricordati che per come è strutturato 4_Espelli() puoi solo terminarlo dal Task Manager per uscire, altrimenti usa la versione con il MsgBox
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.

Ultima modifica di x_Master_x : 09-09-2014 alle 14:15.
x_Master_x è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Google Maps avrà una modalit&agra...
HONOR sta lavorando a uno smartphone con...
Thermaltake MAGFloe 360 Ultra ARGB Sync:...
Xiaomi 15T ora in super offerta su Amazo...
Si stringe il cerchio attorno a TP-Link ...
Amazon cambia i prezzi ancora una volta:...
Imperdibili i Google Pixel 10 a questi p...
Dyson OnTrac in super offerta su Amazon:...
Amazon: la nuova ondata di licenziamenti...
Questo portatile è un mostro: MSI...
Apple Watch Series 11 GPS + Cellular cro...
JBL Clip 5 in forte sconto su Amazon: lo...
Il nuovo top di gamma compatto di OnePlu...
Cresce il divario tra dispositivi elettr...
La missione con equipaggio Shenzhou-21 h...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v