Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Probleme batch


Basphet
 Share

Messages recommandés

Salut a toutes et tous...

 

J'ai un petit souci qui me fait tourner en bourique...

 

Je dois récupérer le résultat d'une commande "dir" dans un fichier texte pour l'exploiter ensuite dans un programme de mon cru.

Je crée donc un batch contenant UNE SEULE ligne de commande :

 

dir \\machine\c$\fichier*.* /s >resultat.txt

 

Je précise que la commande est lancée d'un poste loggé en admin, donc aucun souci pour le C$.

 

Et la, hallucination : Si je lance ce batch une première fois (en double clic sous win ou en tapant sous invite de commande ou en le lançant de mon code) tout fonctionne bien. J'ai a l'écran un résultat du style :

 

dir \\machine\c$\fichier*.* /s >resultat.txt

 

et le résultat du "dir" se met bien dans un fichier "resultat.txt" à la racine de mon C: ...

 

Mais si je lance UNE SECONDE FOIS ce batch, j'ai à l'écran :

 

dir \\machine\c$\fichier*.* /s 1>resultat.txt

 

et je dois faire fin de tache sur ma ligne de commande...

 

C'est quoi ce "1" qui vient s'ajouter entre mon "/s" et mon ">" ???

 

Quelqu'un a deja vu ca ???

Lien vers le commentaire
Partager sur d’autres sites

'soir,

 

jamais vu si un prog écrit ton 1 dans ta ligne du batch ! J'ai fait un petit essai : rien (alors qu'on pourrait penser que ce 1 signalerait que le fichier txt a déjà été écrit).

 

Sinon je vois pas.

 

Essaies de voir ce qui se passe si tu protèges en écriture ton batch :P

Lien vers le commentaire
Partager sur d’autres sites

Batch protégé en écriture : Ne change rien. De toutes façons le pire c'est que le contenu du fichier batch n'est jamais modifié...

 

Effacement du résultat entre 2 lancements : pareil...

 

... Le pire c'est que maintenant ca me met ce "1" A CHAQUE FOIS !

Extrait de mon test en ligne de commande histoire de vous faire rire :

 

C:\>type test.bat

dir c:\cible.txt /s >c:\test.txt

 

C:\>test.bat

 

C:\>dir c:\cible.txt /s 1>c:\test.txt :P

 

C:\>

 

 

Fou non ?

Lien vers le commentaire
Partager sur d’autres sites

Bon ben j'ai trouvé (en fait on m'a donné) la solution :

 

Ce "1" est normal, il correspond au type de sortie désiré :

1 -> par défaut, sortie standard

2 -> ne sortir que les erreurs

 

Donc a l'execution si on a rien mis Windows rajoute un "1" par défaut...

 

...Ce qui ne m'arrange qu'à moitié paskeu ca veut dire que c'est pas ca qui fait planter mon code :P

 

Merci a ceux qui ont cherché aussi :-(

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Est-ce que attend assez longtemps pour laisser la commande finir ? Ca peut prendre du temps ce genre de commande (même si la première fois est la plus rapide).

 

Sinon c'est plutôt un problème réseau je pense. Un test sur une commande analogue fonctionne parfaitement chez moi.

Lien vers le commentaire
Partager sur d’autres sites

Ben j'ai trouvé la source de mon problème (même si j'ai pas encore la solution)

 

Effectivement mon code essaye d'attaquer le fichier de résultat alors que le batch n'a pas terminé ses opérations...

Le souci c'est que si je fais une boucle qui tente de poser un verrou sur ce fichier de résultat pour vérifier si le batch a terminé ou pas, ben mon programme bouffe toutes les ressources et du coup la ligne de commande attend d'avoir de la ressource pour continuer... C'est l'histoire du serpent qui se mord la queue...

 

Mais bon, c'est un autre problème LOL !

Lien vers le commentaire
Partager sur d’autres sites

B'Soir,

 

je dirais même plus :

if not exist c:\resultat.txt goto ERROR
if exist c:\resultat.txt echo Ce p..... de fichier est créé et Windows est baisé !
echo.
pause
:ERROR
echo.
echo Encore raté ! le fichier c:\resultat.txt a été bouffé par ce p..... de Windows.
echo.
pause

 

Mais ça vient du truc réseau puisque sur le HDD ça tourne sans pb ...

Modifié par O.Fournier
Lien vers le commentaire
Partager sur d’autres sites

Salut les Zeb,

O. Fournier a raison il faut mettre une condition dans ton fichier batch. :P:-(:-P

Modifié par m2003
Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Share

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...