Résolu Besoin d'aide un .bat

Solutions (13)
Tags :
  • Copier coller
  • Batch
  • Programmation
|
Bonjour a tous, à partir d'un bloc-notes, j'ai crées un fichier .bat.
Ce .bat me creé un fichier .txt, mon probleme est que a chaque foi que
je lance mon .bat le .txt crée écrase l'ancien .txt ... Comment faire pour
que le .txt crée n'ecrase pas l'ancien et ce crée dans un autre fichier
ou un autre nom ou autre (le mieux serait qu'ilsoit crée dans un nouveau fichier)
Merci de bien vouloir m'aider
Contenus similaires
Meilleure solution
partage
|
Bonjour,

Voici quelques questions pour essayer de cerner le problème :

Quel est l'environnement utilisé ? Pour moi : XP (SP3)
Lorsque le batch est lancé, WirelessKeyView se trouve-t-il dans le même répertoire ?
S'il n'y est pas, le chemin a-t-il été défini ?
Dans la dernière version que j'ai envoyé, > avait été supprimé puisque WirelessKeyView se charge seul de la sortie. > serait-il encore dans le code du batch ?

De mon côté, j'ai une nouvelle fois regardé le code envoyé. J'ai supprimé le _ après %k% et testé le code après un copier/coller.
Effectivement, cela ne fonctionnait plus.
Pour une raison que je n'explique pas - peut-être une différence de codage ou un problème de mise forme avec les sauts de ligne dans Citation ? - un espace avait été ajouté.

Moralité : pour que cela fonctionne :
  • Faire un copier/coller du texte ci-dessous
  • Retirer dans le batch les espaces de fin de ligne qui génèrent des noms avec des espaces, non supportés par dos.



  • Citation :
    setlocal enableDelayedExpansion
    set k=0
    set nom=WirelessKeyView_
    if EXIST Clef/%nom%.txt (goto Inc_Nom ) ELSE (WirelessKeyView /stext Clef/%nom%.txt)
    goto Fin

    :test_exist

    set nom=%nom%%k%
    if EXIST Clef/%nom%.txt (goto Inc_Nom ) ELSE (WirelessKeyView /stext Clef/%nom%.txt)
    goto Fin

    :Inc_Nom

    set /A k=!k!+1
    set nom=WirelessKeyView_
    Goto test_exist

    :Fin


    A bientôt
    • Commenter cette solution |
    Score
    0
    òh
    òi
    , Modérateur |
    Meilleure réponse sélectionnée par OmaR.
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Bonjour,

    Content que cela ait fonctionné.

    Serait-ce trop demander dans ce cas d’élire la réponse comme meilleure réponse ?

    C'est la monnaie de singe du site pour valoriser le temps passé.

    A bientôt
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Sa Marche niquelle merci bcp de ton aide et a+
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Slt jsuis dsl mai mon txt ce crée toujours pas... je doit louper un truc ou sinon ya un truc de faut :/ 
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Bonjour,

    En me plaçant dans les mêmes conditions (utilisation de wirelesskeyview, création du répertoire clef, en lançant le batch au même niveau que l'exe, à moins de déclarer le chemin pour l'atteindre) l'affichage de la variable nom a fait apparaître qu'un espace était ajouté.

    La solution a été d'ajouter l'underscore _ aux variables et qui remplace cet espace.

    Citation :
    setlocal enableDelayedExpansion
    set k=0
    set nom=WirelessKeyView_
    if EXIST Clef/%nom%.txt (goto Inc_Nom ) ELSE (WirelessKeyView /stext Clef/%nom%.txt)
    goto Fin

    :test_exist

    set nom=%nom%%k%_
    if EXIST Clef/%nom%.txt (goto Inc_Nom ) ELSE (WirelessKeyView /stext Clef/%nom%.txt)
    goto Fin

    :Inc_Nom

    set /A k=!k!+1
    set nom=WirelessKeyView_
    Goto test_exist

    :Fin


    Merci de le tester et de clore cette discussion

    A bientôt tout de même
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Bonjour,

    C'est une bonne remarque. Pour demander la création du fichier, il faudrait essayer de supprimer start et d'ajouter le signe > avant le nom du fichier (aucune nouvelle fenêtre n'est générée et le fichier est créé).

    Citation :
    set nom=%nom%%k%
    if EXIST %nom%.txt (goto Inc_Nom ) ELSE (WirelessKeyView.exe /stext > Clef/%nom%.txt)
    goto Fin


    A bientôt
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Merci pour ta reponce j'ai juste un probleme au nivo du .txt qui doit se créer, il ne se crée pas... Dit moi pour coufirmer les dossier qui doive etre placé a coter du .bat pour que les txt se crée merci ( je suis pas trés doué :s )
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Bonjour,

    Le programme ci-dessous permet de générer les fichiers listeX.txt (X étant un nombre entier) après avoir recherché l'existence du dit fichier.
    Si celui-ci n'existe pas, il est créé.
    Sinon, on incrémente la variable k, on change le nom de liste en liste(X+1) et on recommence les opérations de test.
    Citation :
    setlocal enableDelayedExpansion
    set k=0
    set liste=liste
    if EXIST %liste%.txt (goto Inc_Nom ) ELSE (cls > %liste%.txt)

    :test_exist

    set liste=%liste%%k%
    if EXIST %liste%.txt (goto Inc_Nom ) ELSE (cls > %liste%.txt)
    goto Fin

    :Inc_Nom

    set /A k=!k!+1
    set liste=liste
    Goto test_exist

    :Fin


    Voici ce que cela devrait donner pour la ligne de code indiquée :

    Citation :
    setlocal enableDelayedExpansion
    set k=0
    set nom=WirelessKeyView
    if EXIST %nom%.txt (goto Inc_Nom ) ELSE (start WirelessKeyView.exe /stext Clef/%nom%.txt)

    :test_exist

    set nom=%nom%%k%
    if EXIST %nom%.txt (goto Inc_Nom ) ELSE (start WirelessKeyView.exe /stext Clef/%nom%.txt)
    goto Fin

    :Inc_Nom

    set /A k=!k!+1
    set nom=WirelessKeyView
    Goto test_exist

    :Fin


    A bientôt
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Ba voila un expemple d'une ligne de mon .bat :
    -start Nomdulogicielademarrer.exe /stext Nomdudossierousecréeletxt/Nomdulogiciel.txt

    soit

    -start WirelessKeyView.exe /stext Clef/WirelessKeyView.txt


    Le txt reprend le nom du logiciel et se crée dans clef. Mais a chaque foit que je lance le .bat le WirelessKeyView.txt va écraser
    celui deja crée, et moi je voudrait qu'il necrase pas l'ancien. J'ai entendu parler de variable ou un truc comme ca ...
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Si tu utilises la redirection de la sortie standard >, et que tu souhaite tout mettre dans le même fichier, utilise la redirection par concaténation >>.
    Si tu veux faire plusieurs fichiers, utilise IF EXIST et gère toi-même le nom du fichier à créer.
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    |
    Ou plus exactement, comment choisis-tu le nom du .txt ?
    • Commenter cette réponse |
    Score
    0
    òh
    òi
    , Modérateur |
    Salut,

    Et comment tu le créé ton fichier .txt ?
    • Commenter cette réponse |

    Ce n'est pas ce que vous cherchiez ?

    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS