Batch - comment gérér l'espace ? - Win NT/2K/XP - Windows & Software
Marsh Posté le 03-09-2012 à 10:58:26
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.
Marsh Posté le 03-09-2012 à 11:29:54
Hello et merci d'être passé par là.
Citation : tu peux mettre des " " pour délimiter les nom long. |
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
J'invoque le dieu du batch pour venir m'aider !
Marsh Posté le 03-09-2012 à 11:32:21
c'est pas if "%%i" == "default machin" ?
Marsh Posté le 03-09-2012 à 11:41:49
gougoul07 a écrit : c'est pas if "%%i" == "default machin" ? |
YEAH ÇA MARCHE !!!!
Tu es le dieu du batch que j'attendais
(Saleté de langage !)
Marsh Posté le 03-09-2012 à 11:44:59
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
Marsh Posté le 03-09-2012 à 11:51:00
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 !
Marsh Posté le 03-09-2012 à 11:53:19
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
Marsh Posté le 03-09-2012 à 09:57:47
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 !!