script de suppression des profils [BATCH] - Shell/Batch - Programmation
Marsh Posté le 30-06-2009 à 11:28:20
pourquoi tu fais pas
Code :
|
??
Marsh Posté le 30-06-2009 à 11:37:36
en utilisant :commande, je voulais essayer de voir d'où venez le pb mais à la base j'avais bien fait ton code, mais le pb persiste toujours
ps : pour info ce que je veux supprimer ce sont des répertoires.
Marsh Posté le 30-06-2009 à 11:49:02
#####################
#####################
##### Nettoyage #####
###### Profil ######
#####################
#####################
Commande ECHO désactivée.
###############################################################
Nettoyage des profils existant sur la machine en local en cours ....
###############################################################
C:\Documents and Settings\ADMINISTRATEUR\Bureau>Setlocal
C:\Documents and Settings\ADMINISTRATEUR\Bureau>dir /B "C:\Documents and Setting
s\" 1>profil.txt
C:\Documents and Settings\ADMINISTRATEUR\Bureau>CD "C:\Documents and Settings\"
La syntaxe de la commande est incorrecte.
C:\Documents and Settings>if not %a=="All Users"
Marsh Posté le 30-06-2009 à 11:51:41
t'as une erreur sur un cd? O_o
perso j'ai mis ca dans un .bat, pas de souci:
Code :
|
Marsh Posté le 30-06-2009 à 12:06:43
peut être que justement l'erreur n'est pas sur le CD, ^^ puisque il continue jusqu'au --> C:\Documents and Settings>if not %a=="All Users"
Marsh Posté le 30-06-2009 à 12:45:30
les scripts bat ne s'arrêtent pas s'ils rencontrent une erreur... donc ca ne veut rien dire.
Marsh Posté le 30-06-2009 à 13:39:16
pourtant mon script s'arrête puisque l'invite de commande se ferme, il ne continue pas jusqu'au --> pause
Marsh Posté le 30-06-2009 à 13:57:27
déja dans ta "fonction" commande, il ne faut plus utiliser %%a, mais %1. %%A est local à la boucle for.
sinon, j'ai trouvé ton pb, il s'agit du if. soit tu met la commande sur la même ligne, soit tu mets des parenthèses:
Code :
|
Marsh Posté le 30-06-2009 à 14:19:28
ou la version avec :commande
Code :
|
Marsh Posté le 30-06-2009 à 14:20:07
en fait il faut bien prévoir les cas ou les variables sont vides, en rajoutant toujours test ou une autre chaine dans les tests, sinon ca les fait foirer.
Marsh Posté le 07-07-2009 à 11:29:52
qu'est ce qui ne va pas avec ce que je t'ai envoyé dans mon dernier post?
Marsh Posté le 07-07-2009 à 12:10:37
non c'est bon, je te remercie, le seul problème c'est que comme je m'en douté, cette saloperie de windobe me fait chier au niveau de la casse GRRR ar pour lui ADMIN est différent de admin GRRRR
Marsh Posté le 07-07-2009 à 12:38:07
par contre un petit problème, le script ne supprime que les fichiers et non les répertoires, est ce normal ? ou est ce que la commande ne permet pas la suppression de répertoires.
Marsh Posté le 30-06-2009 à 11:20:41
Bonjour,
j'ai un petit problème avec l'écriture d'un batch : je voudrais supprimer tous les dossiers contenant les profils utilisateurs se trouvant dans c:\Documents and settings\ excepté 3 : administrateur, all users, et admin
voila mon script :
@echo off
@echo #####################
@echo #####################
@echo ###### Nettoyage ######
@echo ####### Profil #######
@echo #####################
@echo #####################
@echo
@echo ###############################################################
@echo Nettoyage des profils existant sur la machine en local en cours ....
@echo ###############################################################
@echo on
Setlocal enabledelayedexpansion
dir /B "C:\Documents and Settings\">profil.txt
for /f "delims=" %%a in (profil.txt) do (
call :commande %%a)
:commande
if not %%a=="All Users"
if not %%a==admin
if not %%a==Administrateur
CD "C:\Documents and Settings\"
DEL /S /F /Q %%a
endlocal
pause
lorsque je lance le script, il me marque :
#####################
#####################
##### Nettoyage #####
###### Profil ######
#####################
#####################
Commande ECHO désactivée.
###############################################################
Nettoyage des profils existant sur la machine en local en cours ....
###############################################################
C:\Documents and Settings\ADMINISTRATEUR\Bureau>Setlocal enabledelayedexpansion
C:\Documents and Settings\ADMINISTRATEUR\Bureau>dir /B "C:\Documents and Setting
s\" 1>profil.txt
C:\Documents and Settings\ADMINISTRATEUR\Bureau>for /F "delims=" %a in (profil.t
xt) do (call :commande %a )
C:\Documents and Settings\ADMINISTRATEUR\Bureau>(call :commande ADMINISTRATEUR )
La syntaxe de la commande est incorrecte.
C:\Documents and Settings\ADMINISTRATEUR\Bureau>if not %a=="All Users"
D'où vient le problème ?
Je suis perdu je n'ai rien trouvé pour résoudre ce problème, je ne comprend même pas le problème