Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 17-02-2014, 10:34   #1
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
[VBScript] Spostare un file nel cestino

Ciao a tutti,
sto cercando un modo per spostare un file nel cestino tramite VBScript. Con il metodo DeleteFile dell'oggetto FileSystemObject, il file specificato viene elminato definitivamente. Invece c'è un modo per spostarlo nel cestino? È complicato?
Trial4life è offline  
Old 17-02-2014, 11:40   #2
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Potresti utilizzare questo tool: http://www.maddogsw.com/cmdutils/
Daniels118 è offline  
Old 17-02-2014, 12:01   #3
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Non c'è un'alternativa che non richieda programmi esterni?
Trial4life è offline  
Old 17-02-2014, 12:05   #4
x_Master_x
Senior Member
 
L'Avatar di x_Master_x
 
Iscritto dal: May 2005
Messaggi: 8699
Send a File to the Recycle Bin
FolderItem.InvokeVerb method
__________________
.
Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock
The real me is no match for the legend
.
x_Master_x è offline  
Old 17-02-2014, 12:18   #5
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Quello è il modo corretto, però ha un inconveniente: viene visualizzata la finestra per la conferma della cancellazione.
L'alternativa è di modificare delle chiavi di registro, ma al momento non ricordo quali.
Daniels118 è offline  
Old 17-02-2014, 13:16   #6
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Ho provato con lo script nel primo link, ma non funziona... non appare neanche la finestra di conferma della cancellazione. Com'è possibile?
(Non viene visualizzato nessun errore)
Trial4life è offline  
Old 17-02-2014, 13:25   #7
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Ops, non mi ero accorto che fossero dei link...
sostituisci quest'istruzione
objFolderItem.InvokeVerb("&Delete")
con questa:
objFolderItem.InvokeVerb("delete")
Daniels118 è offline  
Old 17-02-2014, 14:39   #8
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Funziona! Grazie mille!
Trial4life è offline  
Old 17-02-2014, 20:48   #9
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Mmh... c'è un altro piccolo problema.
Nello script che sto cercando di realizzare, ho bisogno di spostare nel cestino tanti file contemporaneamente. Per farlo, ho utilizzato il codice che ha linkato x_Master_x all'interno di una Sub, che ho poi richiamato in un ciclo For, in modo da spostare nel cestino ogni file presente nella cartella.
Il problema è che in questo modo i file vengono spostati nel cestino uno ad uno, mettendoci molti secondi per completare l'operazione quando i file sono varie centinaia. Invece, l'ideale sarebbe spostarli tutti contemporaneamente nel cestino...

Avete qualche idea?
Trial4life è offline  
Old 18-02-2014, 08:22   #10
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Puoi iterare sulle istruzioni di cancellazione invece che sull'intero codice.

Se i file si trovano tutti nella stessa cartella basta inserire queste due istruzioni nel ciclo:
Codice:
Set objFolderItem = objFolder.ParseName(strFileName(i))
objFolderItem.InvokeVerb("delete")
dove strFileName è un array che contiene i nomi dei file (non i percorsi assoluti) e i è la variabile indice del ciclo for.
Se hai i percorsi assoluti puoi ricavare i nomi dei file con questa istruzione:
strFileName = fso.GetFileName(pathAssoluto(i))
in questo caso strFileName è una stringa e pathAssoluto un array.

Se invece i file si trovano in cartelle diverse dovrai inserire queste istruzioni nel ciclo:
Codice:
strFolderParent = fso.GetParentFolderName(pathAssoluto(i))
strFileName = fso.GetFileName(pathAssoluto(i))
Set objFolder = objShell.Namespace(strFolderParent) 
Set objFolderItem = objFolder.ParseName(strFileName)
objFolderItem.InvokeVerb("delete")
Daniels118 è offline  
Old 18-02-2014, 13:36   #11
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Mmh... a grandi linee ho capito cosa intendi, ma non credo di aver capito bene come impostare il codice.

Allora innanzitutto i file sono tutti nella stessa cartella. Tuttavia, lo script serve a cancellare tutti i file di un solo tipo all'interno di una cartella, quindi non tutti i file contenuti in essa.

Per ora la parte di codice in questione è questa:
Codice:
Set FolderRecycle = objFSO.GetFolder(FolderPath)
     For Each File In FolderRecycle.Files
          If Right(File.name,ExtLen) = Extension Then 
	       Toss(FolderPath & "\" & File.name)
	  End If
     Next
Dove:
- FolderPath è il percorso della cartella in cui ci sono i file
- Extension è l'estensione dei file da cancellare
- ExtLen è la lunghezza della stringa Extension
- Toss è la Sub con argomento "strFileToToss", contente il codice preso dal link di prima.

Quindi tu mi stai dicendo di togliere quel ciclo For Each, lasciando soltanto il ciclo l'istruzione If, e inserire un ciclo For..To all'interno della sub Toss? Ma lo devo mettere solo per la definizione di strFileName, o anche per lo spostamento nel cestino?

Ultima modifica di Trial4life : 18-02-2014 alle 14:12.
Trial4life è offline  
Old 18-02-2014, 14:07   #12
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Cosa? Il ciclo i...
Codice:
Const HKEY_CURRENT_USER = &H80000001

Private Sub moveToRecycle(FolderPath, Extension)
	strComputer = "."
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
	strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer"
	strValueName = "ShellState"
	Call oReg.GetBinaryValue(HKEY_CURRENT_USER,strKeyPath, strValueName,strValue)
	strOrigBinSet = strValue(4)
	strValue(4) = 39
	errReturnA = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
	Set objShell = CreateObject("Shell.Application")
	Set objFolder = objShell.Namespace(FolderPath)
	'
	Set FolderRecycle = objFSO.GetFolder(FolderPath)
	For Each File In FolderRecycle.Files
		If Right(File.name, 4) = "." & Extension Then 
			Set objFolderItem = objFolder.ParseName(File.name)
			objFolderItem.InvokeVerb("delete")
		End If
	Next
	'
	strValue(4) = strOrigBinSet
	errReturnB = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
End Sub
Non testato.
Daniels118 è offline  
Old 18-02-2014, 14:08   #13
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Ops... ahahahah mi sono sbagliato
Trial4life è offline  
Old 18-02-2014, 14:28   #14
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Non è cambiato molto... la velocità di spostamento nel cestino è sempre quella (per 300 files ci metterà all'incirca 20 secondi).

Lo script è in grado anche di rimuovere i file senza spostarli nel cestino. Per farlo, ho usato:
Codice:
objFSO.DeleteFile(ELIMINA)
con ELIMINA = FolderPath & "\*." & Extension

In questo modo, con l'asterisco, tutti i file dell'estensione Extension vengono rimossi contemporaneamente (senza bisogno di nessun ciclo!), e ci mette davvero un attimo.

C'è un modo per usare l'asterisco anche nella Sub di prima?

Ultima modifica di Trial4life : 18-02-2014 alle 14:32.
Trial4life è offline  
Old 18-02-2014, 15:45   #15
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
Codice:
Const HKEY_CURRENT_USER = &H80000001
Const SHCONTF_NONFOLDERS = 64

Private Sub moveToRecycle(FolderPath, Extension)
	strComputer = "."
	Set fso = CreateObject("Scripting.FileSystemObject")
	Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
	strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer"
	strValueName = "ShellState"
	Call oReg.GetBinaryValue(HKEY_CURRENT_USER,strKeyPath, strValueName,strValue)
	strOrigBinSet = strValue(4)
	strValue(4) = 39
	errReturnA = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
	Set objShell = CreateObject("Shell.Application")
	Set objFolder = objShell.Namespace(FolderPath)
	'
	Set objFolderItems = objFolder.Items()
	Call objFolderItems.Filter(SHCONTF_NONFOLDERS, "*." & Extension)
	Call objFolderItems.InvokeVerbEx("delete")
	'
	strValue(4) = strOrigBinSet
	errReturnB = oReg.SetBinaryValue(HKEY_CURRENT_USER, strKeyPath, strValueName, strValue)
End Sub
Daniels118 è offline  
Old 18-02-2014, 20:50   #16
Trial4life
Member
 
L'Avatar di Trial4life
 
Iscritto dal: Sep 2010
Messaggi: 180
Davvero geniale!
Non so come ringraziarti!!! Funziona tutto alla perfezione
Trial4life è offline  
Old 15-08-2018, 11:18   #17
mecrally
Junior Member
 
Iscritto dal: Aug 2018
Messaggi: 1
Spostare files nel cestino da unità flash/di rete

Ciao a tutti e buon Ferragosto! Mi chiedevo: esiste uno script che permette di spostare i files che voglio cancellare nel cestino del disco C anziché eliminarli definitivamente??? Sarebbe estremamente utile, dal post che leggo sembra che ci siamo quasi ma non capisco tutte quelle righe di codice dove/come le devo inserire...
mecrally è offline  
Old 15-08-2018, 15:18   #18
Mursey
Senior Member
 
L'Avatar di Mursey
 
Iscritto dal: Aug 2017
Messaggi: 469
Quote:
Originariamente inviato da mecrally Guarda i messaggi
non capisco tutte quelle righe di codice dove/come le devo inserire...
Quattro anni fa qui si parlava di VBscript.

A te serve un file batch immagino... ?
Mursey è offline  
Old 15-08-2018, 15:57   #19
Daniels118
Senior Member
 
L'Avatar di Daniels118
 
Iscritto dal: Jan 2014
Messaggi: 852
07E soprattutto perché sottolinei il cestino del disco c? Stiamo per caso parlando di file su un disco esterno?
Edit: non avevo visto il titolo...
Quando mandi un file nel cestino in realtà il file resta dov'è, viene semplicemente nascosto, per questo puoi inviarvi file enormi senza alcuna attesa... Ovviamente ciò non è possibile se il file risiede su un disco esterno perché non c'è garanzia che questo sia ancora collegato qualora decidessi di ripristinare il file. In questo caso il sistema deve effettuare una copia del file da qualche parte, e per farlo occorre eseguire una configurazione sul cestino per il disco in oggetto.

Ultima modifica di Daniels118 : 15-08-2018 alle 16:13.
Daniels118 è offline  
Old 15-08-2018, 16:27   #20
Slater91
Amministratore
 
L'Avatar di Slater91
 
Iscritto dal: Jun 2009
Città: Glasgow, Scozia
Messaggi: 1979
Quote:
Originariamente inviato da mecrally Guarda i messaggi
Ciao a tutti e buon Ferragosto! Mi chiedevo: esiste uno script che permette di spostare i files che voglio cancellare nel cestino del disco C anziché eliminarli definitivamente??? Sarebbe estremamente utile, dal post che leggo sembra che ci siamo quasi ma non capisco tutte quelle righe di codice dove/come le devo inserire...
Ripescare una discussione vecchia di quattro anni non è una buona idea. Meglio aprirne una nuova (magari nella sezione Windows)...
__________________
Riccardo Robecchi - autore per Hardware Upgrade
MB ASUS Crosshair VI Hero, CPU Ryzen 7 1700X, RAM 32 GiB Corsair Vengeance 3000MHz, VGA Sapphire AMD Radeon RX 5700 XT Pulse, CASE Sun Ultra 24, PSU Corsair TX650W. KDE neon x64 & Win 10 Pro x64.
Slater91 è offline  
 Discussione Chiusa


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
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: 00:31.


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