OVH Cloud OVH Cloud

Envoyer un fichier à la corbeille en VBS

11 réponses
Avatar
Ascadix
Re-bonsoir

Est-ce qqun à une méthode pour envoyer fichiers / répertoires /
arborescences à la corbeille.

Merci

--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.

10 réponses

1 2
Avatar
Do Re Mi chel La Si Do
Re-re-bon-bon-soir-soir !

Il suffit de faire un "MOVE" vers le répertoire RECYCLER du disque.

@-salutations

Michel Claveau
Avatar
Do Re Mi chel La Si Do
Re-re-re


Je complète : s'il y a un, ou des, sous-répertoire(s) dans RECYCLER, il faut
envoyer dans le (bon) sous-répertoire de RECYCLER.


@-salutations

Michel Claveau
Avatar
Ascadix
De la plume numérique de Do Re Mi chel La Si Do, nous vîmes sortir un à un
les octets du messages suivant:
<news:

Re-re-bon-bon-soir-soir !

Il suffit de faire un "MOVE" vers le répertoire RECYCLER du disque.


ça déplace le fichier sans "l'inscrire" dans la corbeille comme un fichier
poubellisé depuis l'explorateur.

et en NTFS, j'ai pas RECYCLER, juste RECYCLED et x sous dossiers avec les
SID.

Je cherche à virer le fichier à partir d'un script ..masi pouvoir
éventuellement le retrouver dans la corbeille avec l'explorateur.


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.

Avatar
Jean-Claude BELLAMY
Dans le message news: ,
Ascadix s'est ainsi exprimé:

De la plume numérique de Do Re Mi chel La Si Do, nous vîmes sortir un
à un les octets du messages suivant:
<news:

Re-re-bon-bon-soir-soir !

Il suffit de faire un "MOVE" vers le répertoire RECYCLER du disque.


ça déplace le fichier sans "l'inscrire" dans la corbeille comme un
fichier poubellisé depuis l'explorateur.

et en NTFS, j'ai pas RECYCLER, juste RECYCLED et x sous dossiers avec
les SID.
???

soit tu t'es mélangé les octets (RECYCLED<->RECYCLER), soit tu as oublié
d'afficher les fichiers cachés système !

Car
1) Le dossier "RECYCLER" n'apparait que dans des partitions NTFS
Il contient un certain nombre de sous-dossiers nommés
"S-1-5-21-...", avec les attributs caché et système,
qui ne sont autres que la corbeille de chaque compte
utilisateur respectif.

2) le dossier "RECYCLED" est le dossier "S-1-5-21-..."
correspondant à l'utilisateur EN COURS
NB : ce n'est pas une copie, mais un ALIAS, tout comme
"Mes documents", à la racine du bureau, est un alias de
"%userprofile%Mes documents"

Par exemple :
H:RECYCLERS-1-5-21-117609710-602609370-725345543-1008
et
H:RECYCLED
c'est la même chose !





--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
*


Avatar
Alain CROS
Bonjour

C'est pas top! mais ...

Alain CROS

--Corbeille.vbs

TransfertCorbeilleAvecShell BrowseRepFile("Choisir le fichier a supprimer", True, Empty)
Function TransfertCorbeilleAvecShell(Choix)
Dim ObjShell, ObjFolderaJeter, ObjFolderItem
Const ssfDRIVES = 17 '(&H11)
On Error Resume Next
Set ObjShell = CreateObject("Shell.Application")
On Error GoTo 0
If ObjShell Is Nothing Then Exit Function
Set ObjFolderaJeter = ObjShell.NameSpace(ssfDRIVES).ParseName(Choix)
For Each ObjFolderItem In ObjFolderaJeter.Parent.Items
If ObjFolderItem = ObjFolderaJeter Then
On Error Resume Next
ObjFolderItem.Verbs.Item(ObjFolderItem.Verbs.Count - 2).DoIt
If Err.Number <> 0 Then
ObjFolderItem.InvokeVerb ("&Supprimer")
ObjFolderItem.InvokeVerb ("&Delete")
End If
On Error GoTo 0
Exit For
End If
Next 'ObjFolderItem
Set ObjFolderItem = Nothing
Set ObjFolderaJeter = Nothing
Set ObjShell = Nothing
End Function
Function BrowseRepFile(Msg, LeType, RepRacine)
Dim ObjShell, objfolder, ObjFolderItem, Param, LeMsg
Const BIF_BROWSEINCLUDEFILES = &H4000
Const BIF_RETURNONLYFSDIRS = &H1
Const ssfDESKTOPDIRECTORY = 16 ' (&H10)
Const ssfDESKTOP = 0
On Error Resume Next
Set ObjShell = CreateObject("Shell.Application")
On Error GoTo 0
If Not IsObject(ObjShell) Then Exit Function
Param = BIF_RETURNONLYFSDIRS
If Not IsEmpty(LeType) Then
Param = Param + BIF_BROWSEINCLUDEFILES
End If
If IsEmpty(RepRacine) Then RepRacine = ssfDESKTOP
Set objfolder = ObjShell.BrowseForFolder(&H0&, Msg, Param, RepRacine)
If objfolder Is Nothing Then Exit Function
On Error Resume Next
BrowseRepFile = objfolder.ParentFolder.ParseName(objfolder.Title).Path
On Error GoTo 0
If BrowseRepFile = "" Then
If objfolder = ObjShell.NameSpace(ssfDESKTOP) Then
With ObjShell.NameSpace(ssfDESKTOPDIRECTORY)
BrowseRepFile = .ParentFolder.ParseName(.Title).Path
End With
Else
For Each ObjFolderItem In objfolder.ParentFolder.Items
If ObjFolderItem = objfolder Then
BrowseRepFile = ObjFolderItem.Path
Exit For
End If
Next
End If
End If
Set ObjFolderItem = Nothing
Set objfolder = Nothing
Set ObjShell = Nothing
End Function

--Corbeille.vbs

"Ascadix" a écrit dans le message de news: #
| Re-bonsoir
|
| Est-ce qqun à une méthode pour envoyer fichiers / répertoires /
| arborescences à la corbeille.
|
| Merci
|
| --
| @+
| Ascadix
| adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.
|
Avatar
Ascadix
De la plume numérique de Jean-Claude BELLAMY, nous vîmes sortir un à un les
octets du messages suivant:
<news:

Dans le message news: ,
Ascadix s'est ainsi exprimé:

De la plume numérique de Do Re Mi chel La Si Do, nous vîmes sortir un
à un les octets du messages suivant:
<news:

Re-re-bon-bon-soir-soir !

Il suffit de faire un "MOVE" vers le répertoire RECYCLER du disque.


ça déplace le fichier sans "l'inscrire" dans la corbeille comme un
fichier poubellisé depuis l'explorateur.

et en NTFS, j'ai pas RECYCLER, juste RECYCLED et x sous dossiers avec
les SID.
???

soit tu t'es mélangé les octets (RECYCLED<->RECYCLER), soit tu as
oublié d'afficher les fichiers cachés système !


Option n°1 :-(

1) Le dossier "RECYCLER" n'apparait que dans des partitions NTFS
Il contient un certain nombre de sous-dossiers nommés
"S-1-5-21-...", avec les attributs caché et système,
qui ne sont autres que la corbeille de chaque compte
utilisateur respectif.


Oui, ça j'ai

2) le dossier "RECYCLED" est le dossier "S-1-5-21-..."
correspondant à l'utilisateur EN COURS
NB : ce n'est pas une copie, mais un ALIAS, tout comme
"Mes documents", à la racine du bureau, est un alias de
"%userprofile%Mes documents"


Ben non, ça je vois pas.

Il n'y a que sur les partitions FAT que j'ai un dossier RECYCLED.
Par exemple :
H:RECYCLERS-1-5-21-117609710-602609370-725345543-1008
et
H:RECYCLED
c'est la même chose !


Sauf que je vois pas de "RECYCLED" sur mes partoches NTFS ?

C'est grave doctor ? :-)


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.



Avatar
Ascadix
De la plume numérique de Alain CROS, nous vîmes sortir un à un les octets du
messages suivant:
<news:

Est-ce qqun à une méthode pour envoyer fichiers / répertoires /
arborescences à la corbeille.

Merci



Bonjour

C'est pas top! mais ...

Alain CROS

--Corbeille.vbs


[snip..]

Merci

Un p'tit coup de main encore ? svp

Quand je lance ce script brut de pomme, il me présente une fenétre de
sélection de dossier/fichier et aprés ..nada, juste un message d'erreur

----------------------------------------------------------------------------------------------------
F:Tmp>cscript Poubeliser.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.

F:TmpPoubeliser.vbs(43, 5) (null): Le fichier spécifié est introuvable.


F:Tmp>
----------------------------------------------------------------------------------------------------

Une p'tite idée ?

Si 43 c'est le n° de ligne, ça correspond à celle-là
Set objfolder = ObjShell.BrowseForFolder(&H0&, Msg, Param, RepRacine)

ça peut être quoi ?
encore merci


--
@+
Ascadix
adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.


Avatar
Alain CROS
Bonjour.

Je n'arrive pas à reproduire cette erreur sur mon système.

Les variables n'étant pas typées, écrire cette ligne comme ça.
Set objfolder = ObjShell.BrowseForFolder(0, Msg, Param, RepRacine)

En cherchant a reproduire cette erreur, je constate que le bouton Annuler n'est pas traité.
Aprés la ligne
Const ssfDRIVES = 17 '(&H11)
Ajouter
If Choix = "" Then
MsgBox "Aucune sélection"
Exit Function
End If

Alain CROS

"Ascadix" a écrit dans le message de news:
| De la plume numérique de Alain CROS, nous vîmes sortir un à un les octets du
| messages suivant:
| <news:
|
| Un p'tit coup de main encore ? svp
|
| Quand je lance ce script brut de pomme, il me présente une fenétre de
| sélection de dossier/fichier et aprés ..nada, juste un message d'erreur
|
| ----------------------------------------------------------------------------------------------------
| F:Tmp>cscript Poubeliser.vbs
| Microsoft (R) Windows Script Host Version 5.6
| Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
|
| F:TmpPoubeliser.vbs(43, 5) (null): Le fichier spécifié est introuvable.
|
|
| F:Tmp>
| ----------------------------------------------------------------------------------------------------
|
| Une p'tite idée ?
|
| Si 43 c'est le n° de ligne, ça correspond à celle-là
| Set objfolder = ObjShell.BrowseForFolder(&H0&, Msg, Param, RepRacine)
|
| ça peut être quoi ?
| encore merci
|
|
| --
| @+
| Ascadix
| adresse @mail valide, mais ajoutez "sesame" dans l'objet pour que ça arrive.
|
Avatar
Jean
Bonjour,

Il ne faut pas mettre ce genre de ligne :

ObjFolderItem.Verbs.Item(ObjFolderItem.Verbs.Count - 2).DoIt

parceque le contenu des menus peuvent être modifiés par d'autres
application.

Dans cette ligne :

ObjFolderItem.InvokeVerb ("&Supprimer")

la chaîne n'est pas bonne ... c'est celle du menu Fichier/Supprimer or
ici il faut celle du clic droit qui est :
"Suppri&mer"

Pour "Delete" je ne sais pas ... il faut voir sur un Windows Anglais.

Pour la partie FR ça donne :

'---8<---Envoi_Corbeille.VBS---
'DEMO
CreateObject("Scripting.FileSystemObject")_
.CreateTextFile("c:test corbeille.txt")
Envoi_Corbeille "c:","test corbeille.txt"
'DEMO

Sub Envoi_Corbeille(repertoire,fichier)
CreateObject("Shell.Application")_
.NameSpace(repertoire)_
.ParseName(fichier)_
.InvokeVerb("Suppri&mer")
End Sub
'---8<---Envoi_Corbeille.VBS---

Amicalement,

--
Jean - JMST
Belgium
Avatar
Alain CROS
Bonjour.

| Il ne faut pas mettre ce genre de ligne :
|
| ObjFolderItem.Verbs.Item(ObjFolderItem.Verbs.Count - 2).DoIt
|
| parceque le contenu des menus peuvent être modifiés par d'autres
| application.

J'ai fait ce script il y a un certain temps déjà, je ne me rapelle plus bien comment j'en suis arrivé là.
mais, je peux me tromper, il est possible de modifier les menus mais seulement dans la partie du haut.
La partie du bas, Propriété, Renommer, Supprimer, etc est inaccessible.

|
| Dans cette ligne :
|
| ObjFolderItem.InvokeVerb ("&Supprimer")
|
| la chaîne n'est pas bonne ... c'est celle du menu Fichier/Supprimer or
| ici il faut celle du clic droit qui est :
| "Suppri&mer"

Sur mon système, Win98, le raccourci clavier est bien le S et non le m.

Je disais que ce n'étais pas top mais apparemment, c'est encore moins top que je pensais!

Alain CROS
1 2