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

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

  Commandes "DOS" incompréhensibles

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Commandes "DOS" incompréhensibles

n°3032154
cypress124
Posté le 13-03-2012 à 14:49:33  profilanswer
 

Bonjour,
je viens vous solliciter parce que je suis face à un problème incompréhensible avec Windows XP
Je suis en train de réaliser un script, qui ligne à ligne sous cmd fonctionne.
Cependant lorsque je le lance, les commandes envoyées au DOS, ne sont pas celles qui figuent dans le fichier.
Ca n'est pas un problème d'encodage de fichier. Jugez vous même :  
 
voici mon script :
 

Code :
  1. REM @echo off
  2. C:
  3. CD "C:Program FilesMandrivaOpenSSHbin"
  4. NET USE Q: \ServeurScan  >NUL 2>&1
  5. dir E: | grep 14 > C:dire.txt
  6. TYPE c:dire.txt
  7. FOR /F "tokens=4 delims= " %i IN (c:dire.txt) DO SET DOSSIER=%i
  8. echo %DOSSIER%


Voici mon retour lorsque je lance ce fichier depuis cmd.exe :  
 

Code :
  1. C:Program FilesMandrivaOpenSSHbin>REM @echo off
  2. C:Program FilesMandrivaOpenSSHbin>C:
  3. C:Program FilesMandrivaOpenSSHbin>CD "C:Program FilesMandrivaOpenSSHbin"
  4. C:Program FilesMandrivaOpenSSHbin>NET USE Q: \serveurScan   1>NUL
  5. 2>&1
  6. C:Program FilesMandrivaOpenSSHbin>dir E:   | grep 14  1>C:dire.txt
  7. C:Program FilesMandrivaOpenSSHbin>TYPE c:dire.txt
  8. 07/03/2012  09:40    <REP>          1400000
  9. dire.txt) était inattendu.
  10. C:Program FilesMandrivaOpenSSHbin>FOR /F "tokens=4 delims= " dire.txt) DO
  11. SET DOSSIER=i


Sur cette dernière commande on voit clairement qu'il manque des caractères.
Alors pour m'oter d'un doute :  
 

Code :
  1. C:Program FilesMandrivaOpenSSHbin>type scan.bat
  2. REM @echo off
  3. C:
  4. CD "C:Program FilesMandrivaOpenSSHbin"
  5. NET USE Q: \serveurScan   >NUL 2>&1
  6. dir E: | grep 14 > C:dire.txt
  7. TYPE c:dire.txt
  8. FOR /F "tokens=4 delims= " %i IN (c:dire.txt) DO SET DOSSIER=%i


Non la syntaxe est correcte.
 
Je pige pas ...  :cry:

mood
Publicité
Posté le 13-03-2012 à 14:49:33  profilanswer
 

n°3032155
cypress124
Posté le 13-03-2012 à 15:04:10  profilanswer
 

Pour aider à la compréhension le typage code m'a enlevé tous les '\'.
Au lieu de  
dir E: | grep 14 > C:dire.txt
FOR /F "tokens=4 delims= " %i IN (c:dire.txt) DO SET DOSSIER=%i
 
je souhaiterait faire :  
FOR /F "usebackq tokens=4 delims= " %i IN (`dir e: | grep 14`) DO SET DOSSIER=%i
seulement, il n'apprécie pas le pipe dans la commande, "| était inattendu".
Comment faire ?

n°3032157
cypress124
Posté le 13-03-2012 à 15:19:08  profilanswer
 

J'avance petit à petit.
J'arrive maintenant à ce script :  
REM @echo off
C:
CD "C:Program FilesMandrivaOpenSSHbin"
NET USE Q: \serveurScan >NUL 2>&1
FOR /F "usebackq tokens=4 delims= " %i IN (`dir e: ^| grep 14`) DO SET DOSSIER=%i
REM SET DOSSIER
echo %DOSSIER%
Q:
IF NOT EXIST Q:%DOSSIER% MKDIR Q:%DOSSIER%
 
Dont voici le résultat :  
C:Program FilesMandrivaOpenSSHbin>scan.bat
 
C:Program FilesMandrivaOpenSSHbin>REM @echo off
 
C:Program FilesMandrivaOpenSSHbin>C:
 
C:Program FilesMandrivaOpenSSHbin>CD "C:Program FilesMandrivaOpenSSHbin"
 
C:Program FilesMandrivaOpenSSHbin>NET USE Q: \ServeurScan  1>NUL 2>&1
| était inattendu.
 
C:Program FilesMandrivaOpenSSHbin>FOR /F "usebackq tokens=4 delims= "  ^| grep 14`) DO SET DOSSIER=i
 
C:Program FilesMandrivaOpenSSHbin>


Message édité par cypress124 le 13-03-2012 à 16:07:48
n°3032160
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 13-03-2012 à 15:28:52  profilanswer
 

si c’est exécuté dans une fichier batch, il te faut :

 
Citation :

FOR /F "tokens=4 delims= " %%i IN (c:\dire.txt) DO SET DOSSIER=%%i


il me semble


Message édité par Z_cool le 13-03-2012 à 15:29:47

---------------
#mais-chut
n°3032164
cypress124
Posté le 13-03-2012 à 16:07:24  profilanswer
 

Je viens seulement de comprendre que l'erreur fait référence à la commande de dessous et non pas de dessus. Qu'est ce que c'est que cette hérésie encore  :fou:  
Cela explique bien des choses...
 
Effectivement en doublant le %, ca passe mieux.
Merci beaucoup pour le coup de main, j'étais en train de m'arracher les cheveux, même si j’avançais doucement.
Et puis j'adore ta photo  :lol:

n°3032167
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 13-03-2012 à 16:29:21  profilanswer
 

cypress124 a écrit :

Je viens seulement de comprendre que l'erreur fait référence à la commande de dessous et non pas de dessus. Qu'est ce que c'est que cette hérésie encore  :fou:
Cela explique bien des choses...

 

Effectivement en doublant le %, ca passe mieux.
Merci beaucoup pour le coup de main, j'étais en train de m'arracher les cheveux, même si j’avançais doucement.
Et puis j'adore ta photo  :lol:


J'ai peut de mérite, voila 2 jours que je m'arrache les cheveux aussi aussi avec une Command DOS qui utilise FOR    :whistle:

 


cela dit, attention avec la déclaration de variable dans une boucle FOR.
beaucoup ont essayé, ils ont eu des problèmes.


Message édité par Z_cool le 13-03-2012 à 16:30:27

---------------
#mais-chut
n°3032171
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 13-03-2012 à 16:36:44  profilanswer
 

Un peut de lecture : http://www.batcher.fr/cmd/setlocal.php


---------------
#mais-chut

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

  Commandes "DOS" incompréhensibles

 

Sujets relatifs
Capture des commandes sous Windowsfault in MS-DOS extender
Ajouter des .exe à la commande DOS - Win 7Commandes après ré-instal.
Petit Question Sympa pour les fan de DOS =)Lister les sessions ouvertes en batch
peut-on sous DOS démarrer 1CD bootable dont l'ISO est dans 1sous rep?Installation XP PRO / commande DOS
CHKDSK par invite de commandes : administrateurPrendre les commandes à distance
Plus de sujets relatifs à : Commandes "DOS" incompréhensibles


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