je souhaite supprimer le contenu d'un repertoire a intervalle regulier sous
windows 2000 Pro
j'ai utlisé la commande "rmdir" mais cette commande supprime le repertoire
specifie ainsi que le rep lui-meme et ca je ne veux pas
de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime que
les fichiers d'un repertoire et non des repertoires
qqn a t-il une idee ?? peut etre scripter en WSH ??
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
Jean-Claude BELLAMY
Cypher s'est ainsi exprimé:
je souhaite supprimer le contenu d'un repertoire a intervalle regulier sous windows 2000 Pro j'ai utlisé la commande "rmdir" mais cette commande supprime le repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime que les fichiers d'un repertoire et non des repertoires qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement : Fichier "superdel.bat" ----------- couper ici ----------- @echo off if %1.==. goto syntaxe if exist "%1" goto suite echo Repertoire %1 inexistant goto fin REM Suppression des fichiers du répertoire del /Q /F "%1*.*" REM Suppression de tous les sous-répertoires for /D %%R in ("%1*.*") do RD /S /Q "%%R" goto fin :syntaxe echo Syntaxe : echo superdel repertoire echo NB: le nom de repertoire : echo - doit se terminer par "" echo - doit etre encadre par des guillemets s'il comporte echo des espaces :fin ----------- couper ici -----------
ATTENTION!!! - vu que les confirmations ont été supprimées partout, - vu que la suppression de fichiers en lecture seule a été autorisée, ce script peut faire des "ravages" !!! P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires : 1) Pour énumérer les sous-répertoires dans une boucle "for", il suffit d'ajouter le commutateur "/D" 2) Ne pas oublier les guillemets avec les noms comportant des espaces!
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Cypher <squal2000fr@yahoo.fr> s'est ainsi exprimé:
je souhaite supprimer le contenu d'un repertoire a intervalle
regulier sous windows 2000 Pro
j'ai utlisé la commande "rmdir" mais cette commande supprime le
repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas
de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime
que les fichiers d'un repertoire et non des repertoires
qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement :
Fichier "superdel.bat"
----------- couper ici -----------
@echo off
if %1.==. goto syntaxe
if exist "%1" goto suite
echo Repertoire %1 inexistant
goto fin
REM Suppression des fichiers du répertoire
del /Q /F "%1*.*"
REM Suppression de tous les sous-répertoires
for /D %%R in ("%1*.*") do RD /S /Q "%%R"
goto fin
:syntaxe
echo Syntaxe :
echo superdel repertoire
echo NB: le nom de repertoire :
echo - doit se terminer par ""
echo - doit etre encadre par des guillemets s'il comporte
echo des espaces
:fin
----------- couper ici -----------
ATTENTION!!!
- vu que les confirmations ont été supprimées partout,
- vu que la suppression de fichiers en lecture seule
a été autorisée,
ce script peut faire des "ravages" !!!
P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires :
1) Pour énumérer les sous-répertoires dans une boucle
"for", il suffit d'ajouter le commutateur "/D"
2) Ne pas oublier les guillemets avec les noms comportant des espaces!
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
je souhaite supprimer le contenu d'un repertoire a intervalle regulier sous windows 2000 Pro j'ai utlisé la commande "rmdir" mais cette commande supprime le repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime que les fichiers d'un repertoire et non des repertoires qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement : Fichier "superdel.bat" ----------- couper ici ----------- @echo off if %1.==. goto syntaxe if exist "%1" goto suite echo Repertoire %1 inexistant goto fin REM Suppression des fichiers du répertoire del /Q /F "%1*.*" REM Suppression de tous les sous-répertoires for /D %%R in ("%1*.*") do RD /S /Q "%%R" goto fin :syntaxe echo Syntaxe : echo superdel repertoire echo NB: le nom de repertoire : echo - doit se terminer par "" echo - doit etre encadre par des guillemets s'il comporte echo des espaces :fin ----------- couper ici -----------
ATTENTION!!! - vu que les confirmations ont été supprimées partout, - vu que la suppression de fichiers en lecture seule a été autorisée, ce script peut faire des "ravages" !!! P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires : 1) Pour énumérer les sous-répertoires dans une boucle "for", il suffit d'ajouter le commutateur "/D" 2) Ne pas oublier les guillemets avec les noms comportant des espaces!
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Cypher
Merci beaucoup
Cypher
"Jean-Claude BELLAMY" a écrit dans le message de news:%
Cypher s'est ainsi exprimé:
je souhaite supprimer le contenu d'un repertoire a intervalle regulier sous windows 2000 Pro j'ai utlisé la commande "rmdir" mais cette commande supprime le repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime que les fichiers d'un repertoire et non des repertoires qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement : Fichier "superdel.bat" ----------- couper ici ----------- @echo off if %1.==. goto syntaxe if exist "%1" goto suite echo Repertoire %1 inexistant goto fin REM Suppression des fichiers du répertoire del /Q /F "%1*.*" REM Suppression de tous les sous-répertoires for /D %%R in ("%1*.*") do RD /S /Q "%%R" goto fin :syntaxe echo Syntaxe : echo superdel repertoire echo NB: le nom de repertoire : echo - doit se terminer par "" echo - doit etre encadre par des guillemets s'il comporte echo des espaces :fin ----------- couper ici -----------
ATTENTION!!! - vu que les confirmations ont été supprimées partout, - vu que la suppression de fichiers en lecture seule a été autorisée, ce script peut faire des "ravages" !!! P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires : 1) Pour énumérer les sous-répertoires dans une boucle "for", il suffit d'ajouter le commutateur "/D" 2) Ne pas oublier les guillemets avec les noms comportant des espaces!
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Merci beaucoup
Cypher
"Jean-Claude BELLAMY" <Jean-Claude.Bellamy@wanadoo.fr> a écrit dans le
message de news:%23TlifYYYDHA.4020@tk2msftngp13.phx.gbl...
Cypher <squal2000fr@yahoo.fr> s'est ainsi exprimé:
je souhaite supprimer le contenu d'un repertoire a intervalle
regulier sous windows 2000 Pro
j'ai utlisé la commande "rmdir" mais cette commande supprime le
repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas
de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime
que les fichiers d'un repertoire et non des repertoires
qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement :
Fichier "superdel.bat"
----------- couper ici -----------
@echo off
if %1.==. goto syntaxe
if exist "%1" goto suite
echo Repertoire %1 inexistant
goto fin
REM Suppression des fichiers du répertoire
del /Q /F "%1*.*"
REM Suppression de tous les sous-répertoires
for /D %%R in ("%1*.*") do RD /S /Q "%%R"
goto fin
:syntaxe
echo Syntaxe :
echo superdel repertoire
echo NB: le nom de repertoire :
echo - doit se terminer par ""
echo - doit etre encadre par des guillemets s'il comporte
echo des espaces
:fin
----------- couper ici -----------
ATTENTION!!!
- vu que les confirmations ont été supprimées partout,
- vu que la suppression de fichiers en lecture seule
a été autorisée,
ce script peut faire des "ravages" !!!
P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires :
1) Pour énumérer les sous-répertoires dans une boucle
"for", il suffit d'ajouter le commutateur "/D"
2) Ne pas oublier les guillemets avec les noms comportant des espaces!
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Jean-Claude.Bellamy@wanadoo.fr * JC.Bellamy@free.fr
"Jean-Claude BELLAMY" a écrit dans le message de news:%
Cypher s'est ainsi exprimé:
je souhaite supprimer le contenu d'un repertoire a intervalle regulier sous windows 2000 Pro j'ai utlisé la commande "rmdir" mais cette commande supprime le repertoire specifie ainsi que le rep lui-meme et ca je ne veux pas de plus, j'ai utlise la commande "del" mais la aussi elle ne supprime que les fichiers d'un repertoire et non des repertoires qqn a t-il une idee ?? peut etre scripter en WSH ??
Oui, on peut utiliser VBS pour cela, mais beaucoup plus simplement : Fichier "superdel.bat" ----------- couper ici ----------- @echo off if %1.==. goto syntaxe if exist "%1" goto suite echo Repertoire %1 inexistant goto fin REM Suppression des fichiers du répertoire del /Q /F "%1*.*" REM Suppression de tous les sous-répertoires for /D %%R in ("%1*.*") do RD /S /Q "%%R" goto fin :syntaxe echo Syntaxe : echo superdel repertoire echo NB: le nom de repertoire : echo - doit se terminer par "" echo - doit etre encadre par des guillemets s'il comporte echo des espaces :fin ----------- couper ici -----------
ATTENTION!!! - vu que les confirmations ont été supprimées partout, - vu que la suppression de fichiers en lecture seule a été autorisée, ce script peut faire des "ravages" !!! P.ex. SURTOUT NE PAS EXECUTER superdel %systemroot% !!!!!! ;+)
Commentaires : 1) Pour énumérer les sous-répertoires dans une boucle "for", il suffit d'ajouter le commutateur "/D" 2) Ne pas oublier les guillemets avec les noms comportant des espaces!
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Th.A.C
il est possible de rajouter un test pour savoir si on est pas a la racine ou dans le %systemroot% en utilisant les variables comme: %~p1 : Développe %1 en un chemin (jusqu'au dernier seulement, attention!!!) %~f1 : Développe %1 en un chemin complet %~df1 : Développe %1 en une lettre de lecteur et un chemin complet qui reformattent proprement les valeurs passées en argument et permettent de faire un test fiable en comparant %systemroot% et %~df1.
Par contre il faut penser à rajouter le à la fin dans le test: if %systemroot% == %~dp1 ...
Attention: c:winnt comme argument, %~df1 donne C:WINNT c:winnt comme argument, %~df1 donne C:WINNT
Pour avoir toutes les options, faites une recherche sur % dans l'aide
Pour tester s'il y a un a la fin d'une variable, on peut utiliser les options d'extraction:
%variable:~positiondepart,longueur%
positiondepart: commence à 0 et non pas 1. En mettant des valeurs négatives on part de x caractères depuis la fin.
longueur: longueur de la chaine a extraire. Si on ne la met pas, prend toute la chaine. Si on met une valeur négative, prend toute la chaine sauf les x derniers caractères.
exemples: C:>echo %systemroot:~0,5% C:WI C:>echo %systemroot:~1% :WINNT C:>echo %systemroot:~1,5% :WIN C:>echo %systemroot:~0,-1% C:WINN C:>echo %systemroot:~-2,-1% N C:>echo %systemroot:~-4,-1% INN
A priori on ne peux pas extraire directement sur %1 avec formattage, il faut passer par une variable intermédiaire: set chemin=%~dp1 echo %chemin:~-1,1% if "%chemin:~-1,1%"=="" echo a la fin
C'est un peu confu comme explication et je n'ai pas trouvé la rubrique dans l'aide de windows. Un grand merci a celui qui a déja donné les explications sur la partie extraction dans ce newsgroup.
il est possible de rajouter un test pour savoir si on est pas a la racine ou
dans le %systemroot% en utilisant les variables comme:
%~p1 : Développe %1 en un chemin (jusqu'au dernier seulement,
attention!!!)
%~f1 : Développe %1 en un chemin complet
%~df1 : Développe %1 en une lettre de lecteur et un chemin complet
qui reformattent proprement les valeurs passées en argument et permettent de
faire un test fiable en comparant %systemroot% et %~df1.
Par contre il faut penser à rajouter le à la fin dans le test:
if %systemroot% == %~dp1 ...
Attention:
c:winnt comme argument, %~df1 donne C:WINNT
c:winnt comme argument, %~df1 donne C:WINNT
Pour avoir toutes les options, faites une recherche sur % dans l'aide
Pour tester s'il y a un a la fin d'une variable, on peut utiliser les
options d'extraction:
%variable:~positiondepart,longueur%
positiondepart: commence à 0 et non pas 1. En mettant des valeurs négatives
on part de x caractères depuis la fin.
longueur: longueur de la chaine a extraire. Si on ne la met pas, prend toute
la chaine. Si on met une valeur négative, prend toute la chaine sauf les x
derniers caractères.
exemples:
C:>echo %systemroot:~0,5%
C:WI
C:>echo %systemroot:~1%
:WINNT
C:>echo %systemroot:~1,5%
:WIN
C:>echo %systemroot:~0,-1%
C:WINN
C:>echo %systemroot:~-2,-1%
N
C:>echo %systemroot:~-4,-1%
INN
A priori on ne peux pas extraire directement sur %1 avec formattage, il faut
passer par une variable intermédiaire:
set chemin=%~dp1
echo %chemin:~-1,1%
if "%chemin:~-1,1%"=="" echo a la fin
C'est un peu confu comme explication et je n'ai pas trouvé la rubrique dans
l'aide de windows.
Un grand merci a celui qui a déja donné les explications sur la partie
extraction dans ce newsgroup.
il est possible de rajouter un test pour savoir si on est pas a la racine ou dans le %systemroot% en utilisant les variables comme: %~p1 : Développe %1 en un chemin (jusqu'au dernier seulement, attention!!!) %~f1 : Développe %1 en un chemin complet %~df1 : Développe %1 en une lettre de lecteur et un chemin complet qui reformattent proprement les valeurs passées en argument et permettent de faire un test fiable en comparant %systemroot% et %~df1.
Par contre il faut penser à rajouter le à la fin dans le test: if %systemroot% == %~dp1 ...
Attention: c:winnt comme argument, %~df1 donne C:WINNT c:winnt comme argument, %~df1 donne C:WINNT
Pour avoir toutes les options, faites une recherche sur % dans l'aide
Pour tester s'il y a un a la fin d'une variable, on peut utiliser les options d'extraction:
%variable:~positiondepart,longueur%
positiondepart: commence à 0 et non pas 1. En mettant des valeurs négatives on part de x caractères depuis la fin.
longueur: longueur de la chaine a extraire. Si on ne la met pas, prend toute la chaine. Si on met une valeur négative, prend toute la chaine sauf les x derniers caractères.
exemples: C:>echo %systemroot:~0,5% C:WI C:>echo %systemroot:~1% :WINNT C:>echo %systemroot:~1,5% :WIN C:>echo %systemroot:~0,-1% C:WINN C:>echo %systemroot:~-2,-1% N C:>echo %systemroot:~-4,-1% INN
A priori on ne peux pas extraire directement sur %1 avec formattage, il faut passer par une variable intermédiaire: set chemin=%~dp1 echo %chemin:~-1,1% if "%chemin:~-1,1%"=="" echo a la fin
C'est un peu confu comme explication et je n'ai pas trouvé la rubrique dans l'aide de windows. Un grand merci a celui qui a déja donné les explications sur la partie extraction dans ce newsgroup.