Bonjour, J'aurais voulu savoir comment on peu supprimer un
repertoir(non vide) via un script vbs.
Le repertoir se trouve sur le reseau, j'ai essayer avec un
whscript qui monte un lecteur reseau du chemin contenant le
repertoir =E0 supprimer puis une command rp sur le repertoir.
Le script me renvoi une erreur disant que le chemin n'est
pas correct alors qu'il l'ai. Si qqun connait un autre
moyen (via un objet par exemple)
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques Barathon [MS]
Une technique un peu rurale, voire agricole, consiste à exécuter la commande "rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un exécutable distinct mais une commande intégrée, toujours est-il qu'il faut d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c ..."):
--- couper ici --- strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep) --- couper ici ---
Jacques
"guillaume" wrote in message news:243c801c45f76$dda03420$ Bonjour, J'aurais voulu savoir comment on peu supprimer un repertoir(non vide) via un script vbs. Le repertoir se trouve sur le reseau, j'ai essayer avec un whscript qui monte un lecteur reseau du chemin contenant le repertoir à supprimer puis une command rp sur le repertoir. Le script me renvoi une erreur disant que le chemin n'est pas correct alors qu'il l'ai. Si qqun connait un autre moyen (via un objet par exemple) Merci d'avance
Guillaume
Une technique un peu rurale, voire agricole, consiste à exécuter la commande
"rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas
lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un
exécutable distinct mais une commande intégrée, toujours est-il qu'il faut
d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c
..."):
--- couper ici ---
strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep)
--- couper ici ---
Jacques
"guillaume" <galinat@mdf86.net> wrote in message
news:243c801c45f76$dda03420$a301280a@phx.gbl...
Bonjour, J'aurais voulu savoir comment on peu supprimer un
repertoir(non vide) via un script vbs.
Le repertoir se trouve sur le reseau, j'ai essayer avec un
whscript qui monte un lecteur reseau du chemin contenant le
repertoir à supprimer puis une command rp sur le repertoir.
Le script me renvoi une erreur disant que le chemin n'est
pas correct alors qu'il l'ai. Si qqun connait un autre
moyen (via un objet par exemple)
Merci d'avance
Une technique un peu rurale, voire agricole, consiste à exécuter la commande "rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un exécutable distinct mais une commande intégrée, toujours est-il qu'il faut d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c ..."):
--- couper ici --- strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep) --- couper ici ---
Jacques
"guillaume" wrote in message news:243c801c45f76$dda03420$ Bonjour, J'aurais voulu savoir comment on peu supprimer un repertoir(non vide) via un script vbs. Le repertoir se trouve sur le reseau, j'ai essayer avec un whscript qui monte un lecteur reseau du chemin contenant le repertoir à supprimer puis une command rp sur le repertoir. Le script me renvoi une erreur disant que le chemin n'est pas correct alors qu'il l'ai. Si qqun connait un autre moyen (via un objet par exemple) Merci d'avance
Guillaume
Merci beaucoup cela à fonctionner.
-----Message d'origine----- Une technique un peu rurale, voire agricole, consiste à exécuter la commande
"rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas
lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un
exécutable distinct mais une commande intégrée, toujours est-il qu'il faut
d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c
...."):
--- couper ici --- strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep) --- couper ici ---
Jacques
"guillaume" wrote in message news:243c801c45f76$dda03420$ Bonjour, J'aurais voulu savoir comment on peu supprimer un repertoir(non vide) via un script vbs. Le repertoir se trouve sur le reseau, j'ai essayer avec un whscript qui monte un lecteur reseau du chemin contenant le repertoir à supprimer puis une command rp sur le repertoir. Le script me renvoi une erreur disant que le chemin n'est pas correct alors qu'il l'ai. Si qqun connait un autre moyen (via un objet par exemple) Merci d'avance
Guillaume
.
Merci beaucoup cela à fonctionner.
-----Message d'origine-----
Une technique un peu rurale, voire agricole, consiste à
exécuter la commande
"rd" via la méthode exec de l'objet Shell. La méthode exec
ne peut pas
lancer directement "rd", je suppose que c'est parce que
"rd" n'est pas un
exécutable distinct mais une commande intégrée, toujours
est-il qu'il faut
d'abord lancer cmd.exe et lui passer la commande en
paramètre ("cmd /c
...."):
--- couper ici ---
strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep)
--- couper ici ---
Jacques
"guillaume" <galinat@mdf86.net> wrote in message
news:243c801c45f76$dda03420$a301280a@phx.gbl...
Bonjour, J'aurais voulu savoir comment on peu supprimer un
repertoir(non vide) via un script vbs.
Le repertoir se trouve sur le reseau, j'ai essayer avec un
whscript qui monte un lecteur reseau du chemin contenant le
repertoir à supprimer puis une command rp sur le repertoir.
Le script me renvoi une erreur disant que le chemin n'est
pas correct alors qu'il l'ai. Si qqun connait un autre
moyen (via un objet par exemple)
Merci d'avance
-----Message d'origine----- Une technique un peu rurale, voire agricole, consiste à exécuter la commande
"rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas
lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un
exécutable distinct mais une commande intégrée, toujours est-il qu'il faut
d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c
...."):
--- couper ici --- strRep = "c:CriticalData"
Set WshShell = CreateObject("WScript.Shell") Set oExec = WshShell.Exec("cmd /c rd /s /q " & strRep) --- couper ici ---
Jacques
"guillaume" wrote in message news:243c801c45f76$dda03420$ Bonjour, J'aurais voulu savoir comment on peu supprimer un repertoir(non vide) via un script vbs. Le repertoir se trouve sur le reseau, j'ai essayer avec un whscript qui monte un lecteur reseau du chemin contenant le repertoir à supprimer puis une command rp sur le repertoir. Le script me renvoi une erreur disant que le chemin n'est pas correct alors qu'il l'ai. Si qqun connait un autre moyen (via un objet par exemple) Merci d'avance
Guillaume
.
scraper
Salut à Jacques Barathon [MS] qui dans son post
nous a écrit/répondu :
Une technique un peu rurale, voire agricole, consiste à exécuter la commande "rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un exécutable distinct mais une commande intégrée, toujours est-il qu'il faut d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c ..."):
euh ... et pourquoi pas avec le fso ?? :-)
copy
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir compte de son contenu éventuel.
copy
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Salut à Jacques Barathon [MS] qui dans son post
u4ZiZB8XEHA.3644@TK2MSFTNGP12.phx.gbl
nous a écrit/répondu :
Une technique un peu rurale, voire agricole, consiste à exécuter la
commande "rd" via la méthode exec de l'objet Shell. La méthode exec
ne peut pas lancer directement "rd", je suppose que c'est parce que
"rd" n'est pas un exécutable distinct mais une commande intégrée,
toujours est-il qu'il faut d'abord lancer cmd.exe et lui passer la
commande en paramètre ("cmd /c ..."):
euh ... et pourquoi pas avec le fso ?? :-)
copy
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un
contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir
compte de son contenu éventuel.
copy
--
Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm
Une technique un peu rurale, voire agricole, consiste à exécuter la commande "rd" via la méthode exec de l'objet Shell. La méthode exec ne peut pas lancer directement "rd", je suppose que c'est parce que "rd" n'est pas un exécutable distinct mais une commande intégrée, toujours est-il qu'il faut d'abord lancer cmd.exe et lui passer la commande en paramètre ("cmd /c ..."):
euh ... et pourquoi pas avec le fso ?? :-)
copy
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir compte de son contenu éventuel.
copy
--
Attention ! Adresse mail invalide ... Pour me contacter, cliquez sur le lien ci-dessous: http://scraper.chez.tiscali.fr/contact.htm
scraper
Jacques Barathon [MS]
Effectivement, c'est plus simple. N'ayant jamais supprimé de dossier avec le FSO, j'avais d'abord pensé à la méthode Delete qui a l'avantage de pouvoir faire la suppression sur une machine distante si besoin est mais qui a l'inconvénient de passer par un select, pas forcément optimal. En comparaison, la méthode DeleteFolder est une solution propre et sans bavure:
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir compte de son contenu éventuel.
copy
Effectivement, c'est plus simple. N'ayant jamais supprimé de dossier avec le
FSO, j'avais d'abord pensé à la méthode Delete qui a l'avantage de pouvoir
faire la suppression sur une machine distante si besoin est mais qui a
l'inconvénient de passer par un select, pas forcément optimal. En
comparaison, la méthode DeleteFolder est une solution propre et sans bavure:
"scraper" <scraper@pasdespam.fr> wrote in message
news:uajbVahYEHA.1048@tk2msftngp13.phx.gbl...
euh ... et pourquoi pas avec le fso ?? :-)
copy
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un
contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir
compte de son contenu éventuel.
Effectivement, c'est plus simple. N'ayant jamais supprimé de dossier avec le FSO, j'avais d'abord pensé à la méthode Delete qui a l'avantage de pouvoir faire la suppression sur une machine distante si besoin est mais qui a l'inconvénient de passer par un select, pas forcément optimal. En comparaison, la méthode DeleteFolder est une solution propre et sans bavure:
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir compte de son contenu éventuel.
copy
Guillaume
Effectivement, c'est plus simple. Mais le repertoir à supprimé était sur une machine distante donc la première solution est plus adequate. Merci quand même Guillaume
-----Message d'origine----- Effectivement, c'est plus simple. N'ayant jamais supprimé de dossier avec le
FSO, j'avais d'abord pensé à la méthode Delete qui a l'avantage de pouvoir
faire la suppression sur une machine distante si besoin est mais qui a
l'inconvénient de passer par un select, pas forcément optimal. En
comparaison, la méthode DeleteFolder est une solution propre et sans bavure:
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un
contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir
compte de son contenu éventuel.
copy
.
Effectivement, c'est plus simple. Mais le repertoir à
supprimé était sur une machine distante donc la première
solution est plus adequate.
Merci quand même
Guillaume
-----Message d'origine-----
Effectivement, c'est plus simple. N'ayant jamais supprimé
de dossier avec le
FSO, j'avais d'abord pensé à la méthode Delete qui a
l'avantage de pouvoir
faire la suppression sur une machine distante si besoin
est mais qui a
l'inconvénient de passer par un select, pas forcément
optimal. En
comparaison, la méthode DeleteFolder est une solution
propre et sans bavure:
Effectivement, c'est plus simple. Mais le repertoir à supprimé était sur une machine distante donc la première solution est plus adequate. Merci quand même Guillaume
-----Message d'origine----- Effectivement, c'est plus simple. N'ayant jamais supprimé de dossier avec le
FSO, j'avais d'abord pensé à la méthode Delete qui a l'avantage de pouvoir
faire la suppression sur une machine distante si besoin est mais qui a
l'inconvénient de passer par un select, pas forcément optimal. En
comparaison, la méthode DeleteFolder est une solution propre et sans bavure:
La méthode DeleteFolder ne fait pas la distinction entre dossiers ayant un
contenu et dossiers vides. Le dossier spécifié sera supprimé sans tenir
compte de son contenu éventuel.
copy
.
Jean-Claude BELLAMY
Dans le message news:26a2e01c46360$b8adbaa0$ , Guillaume s'est ainsi exprimé:
Effectivement, c'est plus simple. Mais le repertoir à supprimé était sur une machine distante donc la première solution est plus adequate. ???????????
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne très bien avec de dossiers DISTANTS !! La syntaxe UNC, elle est fait pour être utilisée ! FSO, il se contrefiche de savoir si le fichier ou dossier est local ou distant!
P.ex. : --- couper ici --- Set oFSO = CreateObject("Scripting.FileSystemObject") ofso.CreateFolder("springfieldC$CriticalData") msgbox "Dossier créé" oFSO.DeleteFolder("springfieldC$CriticalData") msgbox "Dossier supprimé" --- couper ici --- (j'ai utilisé ici les partages administratifs, dont je suis sûr de l'existence, ne les supprimant jamais)
Ah il y en a certains qui aiment se compliquer l'existence ! ;-)))
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *
Dans le message news:26a2e01c46360$b8adbaa0$a601280a@phx.gbl ,
Guillaume <anonymous@discussions.microsoft.com> s'est ainsi exprimé:
Effectivement, c'est plus simple. Mais le repertoir à
supprimé était sur une machine distante donc la première
solution est plus adequate.
???????????
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne très
bien avec de dossiers DISTANTS !!
La syntaxe UNC, elle est fait pour être utilisée !
FSO, il se contrefiche de savoir si le fichier ou dossier est local ou
distant!
P.ex. :
--- couper ici ---
Set oFSO = CreateObject("Scripting.FileSystemObject")
ofso.CreateFolder("\springfieldC$CriticalData")
msgbox "Dossier créé"
oFSO.DeleteFolder("\springfieldC$CriticalData")
msgbox "Dossier supprimé"
--- couper ici ---
(j'ai utilisé ici les partages administratifs, dont je suis sûr de
l'existence, ne les supprimant jamais)
Ah il y en a certains qui aiment se compliquer l'existence ! ;-)))
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org Jean-Claude.Bellamy@wanadoo.fr *
JC.Bellamy@free.fr
Dans le message news:26a2e01c46360$b8adbaa0$ , Guillaume s'est ainsi exprimé:
Effectivement, c'est plus simple. Mais le repertoir à supprimé était sur une machine distante donc la première solution est plus adequate. ???????????
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne très bien avec de dossiers DISTANTS !! La syntaxe UNC, elle est fait pour être utilisée ! FSO, il se contrefiche de savoir si le fichier ou dossier est local ou distant!
P.ex. : --- couper ici --- Set oFSO = CreateObject("Scripting.FileSystemObject") ofso.CreateFolder("springfieldC$CriticalData") msgbox "Dossier créé" oFSO.DeleteFolder("springfieldC$CriticalData") msgbox "Dossier supprimé" --- couper ici --- (j'ai utilisé ici les partages administratifs, dont je suis sûr de l'existence, ne les supprimant jamais)
Ah il y en a certains qui aiment se compliquer l'existence ! ;-)))
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org http://www.bellamyjc.org *
Jacques Barathon [MS]
"Jean-Claude BELLAMY" wrote in message news:ekO%
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne très bien avec de dossiers DISTANTS !! La syntaxe UNC, elle est fait pour être utilisée ! FSO, il se contrefiche de savoir si le fichier ou dossier est local ou distant!
P.ex. : --- couper ici --- Set oFSO = CreateObject("Scripting.FileSystemObject") ofso.CreateFolder("springfieldC$CriticalData") msgbox "Dossier créé" oFSO.DeleteFolder("springfieldC$CriticalData") msgbox "Dossier supprimé" --- couper ici --- (j'ai utilisé ici les partages administratifs, dont je suis sûr de l'existence, ne les supprimant jamais)
Tu as raison, je n'avais pensé à utiliser des UNC. Bien vu. Néanmoins, comme tu le dis toi-même, cela suppose la présence de partages administratifs ou d'un autre partage permettant l'accès au répertoire en question.
Merci en tout cas pour la précision, Jacques
"Jean-Claude BELLAMY" <Jean-Claude.Bellamy@wanadoo.fr> wrote in message
news:ekO%23XM2YEHA.728@TK2MSFTNGP09.phx.gbl...
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne
très
bien avec de dossiers DISTANTS !!
La syntaxe UNC, elle est fait pour être utilisée !
FSO, il se contrefiche de savoir si le fichier ou dossier est local ou
distant!
P.ex. :
--- couper ici ---
Set oFSO = CreateObject("Scripting.FileSystemObject")
ofso.CreateFolder("\springfieldC$CriticalData")
msgbox "Dossier créé"
oFSO.DeleteFolder("\springfieldC$CriticalData")
msgbox "Dossier supprimé"
--- couper ici ---
(j'ai utilisé ici les partages administratifs, dont je suis sûr de
l'existence, ne les supprimant jamais)
Tu as raison, je n'avais pensé à utiliser des UNC. Bien vu. Néanmoins, comme
tu le dis toi-même, cela suppose la présence de partages administratifs ou
d'un autre partage permettant l'accès au répertoire en question.
"Deletefolder" (et toutes les méthodes de FileSystemObject) fonctionne très bien avec de dossiers DISTANTS !! La syntaxe UNC, elle est fait pour être utilisée ! FSO, il se contrefiche de savoir si le fichier ou dossier est local ou distant!
P.ex. : --- couper ici --- Set oFSO = CreateObject("Scripting.FileSystemObject") ofso.CreateFolder("springfieldC$CriticalData") msgbox "Dossier créé" oFSO.DeleteFolder("springfieldC$CriticalData") msgbox "Dossier supprimé" --- couper ici --- (j'ai utilisé ici les partages administratifs, dont je suis sûr de l'existence, ne les supprimant jamais)
Tu as raison, je n'avais pensé à utiliser des UNC. Bien vu. Néanmoins, comme tu le dis toi-même, cela suppose la présence de partages administratifs ou d'un autre partage permettant l'accès au répertoire en question.