Problème aveuc deux instructions sur la même ligne d'un script bat
5 réponses
David
Bonjour le forum,
J'ai créé un bat qui me permet de vérifier si un dossier existe dans
c:\logof$.
Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur.
Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%)
et de faire un logoff.
En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais
laisse Double.Use.%username%
Voici le code :
@echo off
REM Logon
if exist c:\logon$\%username% md c:\logon$\DOUBLE.USER.%username%
shutdown -f -l
md c:\logon$\%username%
Le problème est que je n'arrive pas à mettre deux instructions sur la même
ligne donc la première instruction est md c:\logon$\DOUBLE.USER.%username%
et la deuxième est shutdown -f -l
Lorsque le dossier user existe, il crée un dossier Double.User.%username% +
un dossier shutdown + -f + -1
J'ai aussi essayé de mettre shutdown -f -l mais il me fait un shutdown à
chaque fois alors.
Je suis sure que ça fonctionne vue que j'y étais arrivé mais j'ai ajouté des
REM et depuis il fonctionne plus, j'ai donc supprimé toutes les lignes de
REM (remarques) mais ça fonctionne plus.
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
-- ~Jean-Marc~ MSAE & MVP Windows XP Fr M'écrire : http://msmvps.com/docxp/contact.aspx - http://docxp.mvps.org - http://msmvps.com/docxp/ - Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Alain CROS
Bonjour.
Faire le IF EXIST pour chaque commande.
Alain CROS
"David" a écrit dans le message de news: # | Bonjour le forum, | | | | J'ai créé un bat qui me permet de vérifier si un dossier existe dans | c:logof$. | | | | Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur. | | | | Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%) | et de faire un logoff. | | | | En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais | laisse Double.Use.%username% | | | | Voici le code : | | | | @echo off | | | | REM Logon | | | | if exist c:logon$%username% md c:logon$DOUBLE.USER.%username% | shutdown -f -l | | md c:logon$%username% | | | | Le problème est que je n'arrive pas à mettre deux instructions sur la même | ligne donc la première instruction est md c:logon$DOUBLE.USER.%username% | et la deuxième est shutdown -f -l | | | | Lorsque le dossier user existe, il crée un dossier Double.User.%username% + | un dossier shutdown + -f + -1 | | | | J'ai aussi essayé de mettre shutdown -f -l mais il me fait un shutdown à | chaque fois alors. | | | | Je suis sure que ça fonctionne vue que j'y étais arrivé mais j'ai ajouté des | REM et depuis il fonctionne plus, j'ai donc supprimé toutes les lignes de | REM (remarques) mais ça fonctionne plus. | | | | J'espère que vous pourrez m'aider. | | | | Merci d'avance et bonne soirée. | | | | Bgs | |
Bonjour.
Faire le IF EXIST pour chaque commande.
Alain CROS
"David" <chantal.godfraind@belgacom.net> a écrit dans le message de news: #P94hATwFHA.2232@TK2MSFTNGP11.phx.gbl...
| Bonjour le forum,
|
|
|
| J'ai créé un bat qui me permet de vérifier si un dossier existe dans
| c:logof$.
|
|
|
| Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur.
|
|
|
| Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%)
| et de faire un logoff.
|
|
|
| En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais
| laisse Double.Use.%username%
|
|
|
| Voici le code :
|
|
|
| @echo off
|
|
|
| REM Logon
|
|
|
| if exist c:logon$%username% md c:logon$DOUBLE.USER.%username%
| shutdown -f -l
|
| md c:logon$%username%
|
|
|
| Le problème est que je n'arrive pas à mettre deux instructions sur la même
| ligne donc la première instruction est md c:logon$DOUBLE.USER.%username%
| et la deuxième est shutdown -f -l
|
|
|
| Lorsque le dossier user existe, il crée un dossier Double.User.%username% +
| un dossier shutdown + -f + -1
|
|
|
| J'ai aussi essayé de mettre shutdown -f -l mais il me fait un shutdown à
| chaque fois alors.
|
|
|
| Je suis sure que ça fonctionne vue que j'y étais arrivé mais j'ai ajouté des
| REM et depuis il fonctionne plus, j'ai donc supprimé toutes les lignes de
| REM (remarques) mais ça fonctionne plus.
|
|
|
| J'espère que vous pourrez m'aider.
|
|
|
| Merci d'avance et bonne soirée.
|
|
|
| Bgs
|
|
"David" a écrit dans le message de news: # | Bonjour le forum, | | | | J'ai créé un bat qui me permet de vérifier si un dossier existe dans | c:logof$. | | | | Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur. | | | | Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%) | et de faire un logoff. | | | | En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais | laisse Double.Use.%username% | | | | Voici le code : | | | | @echo off | | | | REM Logon | | | | if exist c:logon$%username% md c:logon$DOUBLE.USER.%username% | shutdown -f -l | | md c:logon$%username% | | | | Le problème est que je n'arrive pas à mettre deux instructions sur la même | ligne donc la première instruction est md c:logon$DOUBLE.USER.%username% | et la deuxième est shutdown -f -l | | | | Lorsque le dossier user existe, il crée un dossier Double.User.%username% + | un dossier shutdown + -f + -1 | | | | J'ai aussi essayé de mettre shutdown -f -l mais il me fait un shutdown à | chaque fois alors. | | | | Je suis sure que ça fonctionne vue que j'y étais arrivé mais j'ai ajouté des | REM et depuis il fonctionne plus, j'ai donc supprimé toutes les lignes de | REM (remarques) mais ça fonctionne plus. | | | | J'espère que vous pourrez m'aider. | | | | Merci d'avance et bonne soirée. | | | | Bgs | |
Do Re Mi chel La Si Do
Bonsoir !
J'approuve l'utilisation des parenthèses. Petite précision les parenthèses, le ELSE doivent se trouver sur la même que la parenthèse de fin de la première partie du IF. La ligne ) ELSE ( est donc bien placée.
Sinon, certaines commandes nécessitent de se terminer par une fin de ligne, ce qui peut gêner leur utilisation, en même temps que d'autres, sur la même ligne (ça, c'est juste pour meubler un peu)
Enfin, sous XP et S-2003, il y a l'étiquette implicite :EOF, ce qui permet la variante suivante :
@echo off if exist c:logon$%username% GOTO :DUSER md c:logon$%username% GOTO :EOF
J'approuve l'utilisation des parenthèses. Petite précision les parenthèses,
le ELSE doivent se trouver sur la même que la parenthèse de fin de la
première partie du IF. La ligne ) ELSE ( est donc bien placée.
Sinon, certaines commandes nécessitent de se terminer par une fin de ligne,
ce qui peut gêner leur utilisation, en même temps que d'autres, sur la même
ligne (ça, c'est juste pour meubler un peu)
Enfin, sous XP et S-2003, il y a l'étiquette implicite :EOF, ce qui permet
la variante suivante :
@echo off
if exist c:logon$%username% GOTO :DUSER
md c:logon$%username%
GOTO :EOF
J'approuve l'utilisation des parenthèses. Petite précision les parenthèses, le ELSE doivent se trouver sur la même que la parenthèse de fin de la première partie du IF. La ligne ) ELSE ( est donc bien placée.
Sinon, certaines commandes nécessitent de se terminer par une fin de ligne, ce qui peut gêner leur utilisation, en même temps que d'autres, sur la même ligne (ça, c'est juste pour meubler un peu)
Enfin, sous XP et S-2003, il y a l'étiquette implicite :EOF, ce qui permet la variante suivante :
@echo off if exist c:logon$%username% GOTO :DUSER md c:logon$%username% GOTO :EOF
Dans le message news:% , David s'est ainsi exprimé:
J'ai créé un bat qui me permet de vérifier si un dossier existe dans c:logof$. Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur. Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%) et de faire un logoff. En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais laisse Double.Use.%username% [...] Le problème est que je n'arrive pas à mettre deux instructions sur la même ligne donc la première instruction est md c:logon$DOUBLE.USER.%username% et la deuxième est shutdown -f -l
Pour exécuter plusieurs instructions à la suite, il suffit d'utiliser le séparateur "&" (comme dans tout shell UNIX)
if .... md c:logon$DOUBLE.USER.%username% & shutdown -f -l
On peut d'ailleurs finasser l'enchainement de commandes : - le séparateur "&&" permet d'exécuter la commande suivante seulement si l'exécution de la commande précédente a réussi. - le séparateur "||" permet d'exécuter la commande suivante seulement si l'exécution de la commande précédente a échoué.
... del %toto% || echo la suppression de %toto% a foiré. ...
... format k: && echo le formatage de K: a réussi ...
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Dans le message news:%23P94hATwFHA.2232@TK2MSFTNGP11.phx.gbl ,
David <chantal.godfraind@belgacom.net> s'est ainsi exprimé:
J'ai créé un bat qui me permet de vérifier si un dossier existe dans
c:logof$.
Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur.
Si il existe, je demande de créer un nouveau dossier
(Double.Use.%username%) et de faire un logoff.
En plus de ça, un script au logoff efface le dossier nom
d'utilisateur mais laisse Double.Use.%username%
[...]
Le problème est que je n'arrive pas à mettre deux instructions sur
la même ligne donc la première instruction est md
c:logon$DOUBLE.USER.%username% et la deuxième est shutdown -f -l
Pour exécuter plusieurs instructions à la suite, il suffit d'utiliser le
séparateur "&"
(comme dans tout shell UNIX)
if .... md c:logon$DOUBLE.USER.%username% & shutdown -f -l
On peut d'ailleurs finasser l'enchainement de commandes :
- le séparateur "&&" permet d'exécuter la commande suivante
seulement si l'exécution de la commande précédente a réussi.
- le séparateur "||" permet d'exécuter la commande suivante
seulement si l'exécution de la commande précédente a échoué.
...
del %toto% || echo la suppression de %toto% a foiré.
...
...
format k: && echo le formatage de K: a réussi
...
--
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
Dans le message news:% , David s'est ainsi exprimé:
J'ai créé un bat qui me permet de vérifier si un dossier existe dans c:logof$. Si il n'existe PAS, il crée un dossier avec le nom d'utilisateur. Si il existe, je demande de créer un nouveau dossier (Double.Use.%username%) et de faire un logoff. En plus de ça, un script au logoff efface le dossier nom d'utilisateur mais laisse Double.Use.%username% [...] Le problème est que je n'arrive pas à mettre deux instructions sur la même ligne donc la première instruction est md c:logon$DOUBLE.USER.%username% et la deuxième est shutdown -f -l
Pour exécuter plusieurs instructions à la suite, il suffit d'utiliser le séparateur "&" (comme dans tout shell UNIX)
if .... md c:logon$DOUBLE.USER.%username% & shutdown -f -l
On peut d'ailleurs finasser l'enchainement de commandes : - le séparateur "&&" permet d'exécuter la commande suivante seulement si l'exécution de la commande précédente a réussi. - le séparateur "||" permet d'exécuter la commande suivante seulement si l'exécution de la commande précédente a échoué.
... del %toto% || echo la suppression de %toto% a foiré. ...
... format k: && echo le formatage de K: a réussi ...
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org *
Do Re Mi chel La Si Do
Bonsoir !
C'est tout à fait exact.
Mais toutes les commandes ne peuvent pas s'enchaîner. Exemple : dir *.* | find"txt" & echo BBB provoquera une erreur. Les parenthèses permettent alors de gérer ce genre de cas.
@-salutations
Michel Claveau
Bonsoir !
C'est tout à fait exact.
Mais toutes les commandes ne peuvent pas s'enchaîner.
Exemple :
dir *.* | find"txt" & echo BBB
provoquera une erreur. Les parenthèses permettent alors de gérer ce genre de
cas.
Mais toutes les commandes ne peuvent pas s'enchaîner. Exemple : dir *.* | find"txt" & echo BBB provoquera une erreur. Les parenthèses permettent alors de gérer ce genre de cas.