Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
847 connectés 

  FORUM HardWare.fr
  Windows & Software
  Win NT/2K/XP

  Batch - comment gérér l'espace ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch - comment gérér l'espace ?

n°3053666
andhuan
cf topic citations perso
Posté le 03-09-2012 à 09:57:47  profilanswer
 

Bonjour, je suis sur la création d'un fichier batch qui fait le ménage dans un répertoire en effaçant tout ce qu'il y a dedans, sauf 4 répertoires (All Users, Default User, LocalService, NetworkService).
 
Problème qui me prend la tête depuis un moment : pas moyen de vérifier la condition vraie quand il y a un espace dans la variable.
 
Même si i vaut Default User, pas moyen de vérifier la condition if %%i == Default User à cause de l'espace dans le nom. J'ai beau essayer avec if %%i == "Default User" , if %%i == 'Default User' , if %%i == Default User (espace insécable). J'ai aussi essayé avec delims= et tokens= mais j'avoue que je ne pige pas la subtilité de ces commandes.  
 
Quelqu'un qui connait la solution peut-il regarder mon script ?
 


DIR /AD /B "E:\USERS" > %TEMP%\listeRepertoiresTEMP.txt
FOR /F "delims=" %%i in (%TEMP%\listeRepertoiresTEMP.txt) DO (
 set efface=oui
 if %%i == All Users set efface=non
 if %%i == Default User set efface=non
 if %%i == LocalService User set efface=non
 if %%i == NetworkService User set efface=non
 if !efface! == oui (
  echo Suppression de %%i...
 )
)


 
Merci d'avance !!
 
 [:arn0]

mood
Publicité
Posté le 03-09-2012 à 09:57:47  profilanswer
 

n°3053671
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 03-09-2012 à 10:58:26  profilanswer
 

tu peux mettre des "  " pour délimiter les nom long.
 
ou  
 
tu fais un dir /X pour connaître et utiliser les noms court et les utiliser a la place.


---------------
#mais-chut
n°3053675
nebulios
Posté le 03-09-2012 à 11:22:37  profilanswer
 

Passe par des GPP plutôt...

n°3053679
andhuan
cf topic citations perso
Posté le 03-09-2012 à 11:29:54  profilanswer
 

Hello et merci d'être passé par là.
 

Citation :

tu peux mettre des "  " pour délimiter les nom long.
 
ou  
 
tu fais un dir /X pour connaître et utiliser les noms court et les utiliser a la place.


 
Ni l'un ni l'autre ne marche hélas ! J'ai quand même essayé pas mal de truc avant de poster  ;)  
 
les "double quote" ne fonctionnent pas ni 'simple quote'.
 
le paramétré /X est "écrasé" par le paramètre /B qui est nécessaire à la boule for.
 
Et les GPP... ben... je suis sur un domaine Samba  :D  
 
J'invoque le dieu du batch pour venir m'aider !
 
[:arn0]

n°3053680
gougoul07
Bo comme un dieu
Posté le 03-09-2012 à 11:32:21  profilanswer
 

c'est pas if "%%i" == "default machin" ?


---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.
n°3053682
andhuan
cf topic citations perso
Posté le 03-09-2012 à 11:41:49  profilanswer
 

gougoul07 a écrit :

c'est pas if "%%i" == "default machin" ?


 
 
YEAH ÇA MARCHE !!!!
 
Tu es le dieu du batch que j'attendais :jap:  
 
(Saleté de langage !)

n°3053684
gougoul07
Bo comme un dieu
Posté le 03-09-2012 à 11:44:59  profilanswer
 

non c'est logique il te faut la même chose des deux cotés
tu devais faire une comparaison avec l'une des moitiés seulement du nom a cause de l'espace


---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.
n°3053687
andhuan
cf topic citations perso
Posté le 03-09-2012 à 11:51:00  profilanswer
 

Oui grâce à ton aide je comprends un peu mieux la logique, c'est vrai que c'est assez simple finalement, m'enfin, dans tous les autres langages que je connait, une variable chaine est une variable chaine, pas besoin d'entourer de guillemets le nom de variable.
 
Faut le savoir quoi !

n°3053688
gougoul07
Bo comme un dieu
Posté le 03-09-2012 à 11:53:19  profilanswer
 

sauf que la ça n'est pas vraiment une variable, c'est remplacé par le contenu lors de l’exécution, le %%i n'existe plus
c'est valable pour bien d'autres choses


Message édité par gougoul07 le 03-09-2012 à 11:53:37

---------------
Mieux vaut apprendre à un homme à pêcher avant de l'avoir tué.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Win NT/2K/XP

  Batch - comment gérér l'espace ?

 

Sujets relatifs
Combien de % d'espace libre pour défragmenter?Gérer connexion multiple (brider une connexion)
Option de commande invalide en batchGerer partition GPT
Gerer les comptes et sessions sur W7Problème d'espace disque
Gérer au mieux ses mots de passes ?Espace disponible impossible à formater.
Récupérer espace non allouéFichier supprimé qui occupe toujours l'espace disque
Plus de sujets relatifs à : Batch - comment gérér l'espace ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR