[BATCH] Sa marche pas .... commande + script !
Dernière réponse : dans Programmation
Bon voila alors mon problem est le suivant :
on ne peu pas mettre de goto lorsque que l'on est dans une "boucle for" ..... comment faire dans ce cas ?? esqu'il y a une autre commande à utiliser ?
Voici ce que j'aimerais faire :
Etcomment faire pour que la commande : "cls" n'efface pas tout ce qu'il y a d'écris mais seulmement les 2 ligne au dessus de la commande ...
Esque c'est possible ?
Si vous pouviez m'aider ....
Merci !
on ne peu pas mettre de goto lorsque que l'on est dans une "boucle for" ..... comment faire dans ce cas ?? esqu'il y a une autre commande à utiliser ?
Voici ce que j'aimerais faire :
for /F "tokens=1,1* delims=" %%i in (log.txt) do (
if %evite%==aucun goto suite
if "%%i"==%evite%* goto fin
suite
move /y "%%i" "%destination%"
:fin
)
Etcomment faire pour que la commande : "cls" n'efface pas tout ce qu'il y a d'écris mais seulmement les 2 ligne au dessus de la commande ...
Esque c'est possible ?
Si vous pouviez m'aider ....
Merci !
Autres pages sur : batch marche commande script
Lassé par la pub ? Créez un compte
ah bon ? on peut pas mettre de goto dans un FOR...
Sinon tu peux tout mettre dans un IF en utilisant les parenthèses non ?
Et si tu veux sortir de la boucle il faut faire une variable booléenne:
Sinon tu peux tout mettre dans un IF en utilisant les parenthèses non ?
Et si tu veux sortir de la boucle il faut faire une variable booléenne:
set termine=faux
for /F "tokens=1,1* delims=" %%i in (log.txt) do (
if %termine%==faux (
'traitement ici
'a la place d'un goto exeterieur mettre set termine=vrai
)
)
C'est quoi mon problem dans ce script :
je vois pas du tout !! Pourtant meme si %%i==%evite%* sa effectue quand meme le "move" !!
De plus à la fin de la "boucle for" ma fenetre DOS se ferme !
Merci !
for /F "tokens=1,1* delims=" %%i in (log.txt) do (
if not "%%i"=="%evite%*" move /y "%%i" "%destination%"
echo .
)
je vois pas du tout !! Pourtant meme si %%i==%evite%* sa effectue quand meme le "move" !!
De plus à la fin de la "boucle for" ma fenetre DOS se ferme !
Merci !
Alors je m'explique : non je ne suis pas sur que ce soir egal !
Ce que j'aimerais comparer c'est sa par exemple :
set evite=C:\258\
set var2=C:\258\fichier.txt
don cdans ce cas je ne veu pas que mon "move" soit executer car justement le chemin de "%var2%"=="%evite%*" !! L'étoile que je met à la fin c'est juste pour lui dire de comparer que le début de la chaine de caractère !
et au contraire si
set evite=C:\WINDOWS\
set var2=C:\Program Files\
Comme "%evite%*" n'est pas egal à "%var2%" alors le "move" est executé !
mais il y un problem quelque part ! Mais je vois pas ou ! :-(
Ce que j'aimerais comparer c'est sa par exemple :
set evite=C:\258\
set var2=C:\258\fichier.txt
don cdans ce cas je ne veu pas que mon "move" soit executer car justement le chemin de "%var2%"=="%evite%*" !! L'étoile que je met à la fin c'est juste pour lui dire de comparer que le début de la chaine de caractère !
et au contraire si
set evite=C:\WINDOWS\
set var2=C:\Program Files\
Comme "%evite%*" n'est pas egal à "%var2%" alors le "move" est executé !
mais il y un problem quelque part ! Mais je vois pas ou ! :-(
les IF ne prennent pas les caractères génériques comme *.
Le '*' est le caractère '*' et pas "n'importe quel texte".
mais ton ton truc, ça ne serait pas plus simple d'utiliser la commande FIND sur ton fichier ?
en redirigeant la sortie dans un autre fichier et tu as la liste de tous les fichiers à déplacer.
pour tester le IF dans le FOR, teste IF "0"=="0" et IF "0"=="1". Si ça ça marche, le IF marche bien.
Le '*' est le caractère '*' et pas "n'importe quel texte".
mais ton ton truc, ça ne serait pas plus simple d'utiliser la commande FIND sur ton fichier ?
en redirigeant la sortie dans un autre fichier et tu as la liste de tous les fichiers à déplacer.
pour tester le IF dans le FOR, teste IF "0"=="0" et IF "0"=="1". Si ça ça marche, le IF marche bien.
A oui et tant que j'y suis : vous saurez pas comment prendre le nom de l'utilisateur en cour ...... c'est à dire le nom de l'utilisateur sous le quel le batch est executé ??
ps : ne me dite pas %userprofile%[/color] car sa me donne tout un chemin pas seulement le nom de l'utilisateur et je ne sais pas comment extraire que le nom dd'utilisateur du chemin donné
ps : ne me dite pas %userprofile%[/color] car sa me donne tout un chemin pas seulement le nom de l'utilisateur et je ne sais pas comment extraire que le nom dd'utilisateur du chemin donné
Et ce que je disais avec la commande FIND, tu ne peux pas t'en sortir ?
sinon prend le début de la variable.
si tu vex tester "toto*" avec le contenu d'une variable VAR, tu peux comparer:
IF "%VAR~0,4%"=="toto" echo Ok
ça découpe la variable VAR en commençant à l'index 0 et en prenant 4 caractères.
Donc si VAR=totozearzer, ben le test passera ;-)
Pour l'utilisateur, je dirai %username% (j'ai fait un simple SET pour avoir la liste de toutes les variables ;-) )
sinon prend le début de la variable.
si tu vex tester "toto*" avec le contenu d'une variable VAR, tu peux comparer:
IF "%VAR~0,4%"=="toto" echo Ok
ça découpe la variable VAR en commençant à l'index 0 et en prenant 4 caractères.
Donc si VAR=totozearzer, ben le test passera ;-)
Pour l'utilisateur, je dirai %username% (j'ai fait un simple SET pour avoir la liste de toutes les variables ;-) )
Aaaaa Magnifico !! respect total !! Je m'incline devant ta grandeur !
Encore une fois merci à toi Cricky !
Puis ba à bientot pour de nouvelles questions ....
:-D
Fausse joi !! je vien de m'appercevoir d'un truc : puisque je ne connais pas le chemin qui sera définit par l'utilisateur : il peu définir : "C:\Program Files\blablabla\blabla\123\" etc ...... donc je ne sais pas à combien caractère comparé
Car si je met par exemple 4 caractère il me les comparera : Alors il trouvera que c'est egal alors que sa se trouve le second chemin à comparer est : "C:\Program Files\blablabla\blabla\258\" qui n'est pas égal à "C:\Program Files\blablabla\blabla\123\"
En faite il faudrait trouver comment lui dire de comparer le chemin entrer par l'utilisateur avec le chemin avant le nom du fichier. exemple : C:\123\258.txt et C:\123\
mmmm tu vois ? :-D
Encore une fois merci à toi Cricky !
Puis ba à bientot pour de nouvelles questions ....
:-D
Fausse joi !! je vien de m'appercevoir d'un truc : puisque je ne connais pas le chemin qui sera définit par l'utilisateur : il peu définir : "C:\Program Files\blablabla\blabla\123\" etc ...... donc je ne sais pas à combien caractère comparé
Car si je met par exemple 4 caractère il me les comparera : Alors il trouvera que c'est egal alors que sa se trouve le second chemin à comparer est : "C:\Program Files\blablabla\blabla\258\" qui n'est pas égal à "C:\Program Files\blablabla\blabla\123\"
En faite il faudrait trouver comment lui dire de comparer le chemin entrer par l'utilisateur avec le chemin avant le nom du fichier. exemple : C:\123\258.txt et C:\123\
mmmm tu vois ? :-D
Ouais, ben ça je vois pas trop comment faire en batch.
Il faudrait analyser la chaine, avec un for /F en prenant comme token=/ pour découper en répertoire.
Mais là c'est pareil, il y a un problème sur le nombre de répertoire qui est variable.
Sinon sur chaque fichier, refaire un DIR dessus mais sans mettre l'option qui permet d'afficher tout le path, juste le nom, et là tu peux faire une comparaison sur le fichier. Mais bon, tu as le même problème si tu veux faire un filtre du type "debut*milieu*fin". Pour "debut*" et "*fin" pas de problème.
Je sais pas si ça t'aide, on sait jamais :-D
Il faudrait analyser la chaine, avec un for /F en prenant comme token=/ pour découper en répertoire.
Mais là c'est pareil, il y a un problème sur le nombre de répertoire qui est variable.
Sinon sur chaque fichier, refaire un DIR dessus mais sans mettre l'option qui permet d'afficher tout le path, juste le nom, et là tu peux faire une comparaison sur le fichier. Mais bon, tu as le même problème si tu veux faire un filtre du type "debut*milieu*fin". Pour "debut*" et "*fin" pas de problème.
Je sais pas si ça t'aide, on sait jamais :-D
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumBatch script
- ForumScript en batch dos
- ForumBatch script ftp
- ForumScript batch vider un fichier
- ForumScript batch
- solutionsScript batch accent
- ForumScript batch if or
- ForumBatch script shell sous windows
- ForumBatch script de sauvegarde incrementielle
- ForumScript batch pour executer un programme
- Voir plus