Partage
  • Partager sur Facebook
  • Partager sur Twitter

probléme de répertoire

Sujet résolu
    16 octobre 2023 à 20:26:04

    Bonjour, j'ai crée un petit programme en .bat:

    cd /d Q:\Espace d'échange
    set /A a = 1
    :x

    set /A a += 1
    type nul > %a%.txt
    goto x

    le problème, c'est que ça ne crée pas les fichiers dans le fichier voulu ayant pour chemin d’accès Q:\Espace d'échange mais dans le fichier où se trouve le script.

    je précise que Q: est un disque dur externe (sur un serveur) et que j'ai les permissions de créer des fichiers dans ce fichier.

    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2023 à 17:47:30

      A mon avis, c'est parce que le chemin qui contient un espace doit être entouré de guillemets (chose classique dans la gestion des chemins) et donc le 1er cd ne marche pas, donc on reste à l'emplacement du script (pour t'en assurer, tu peux tester les commandes directement dans une invite de commande)

      • Partager sur Facebook
      • Partager sur Twitter
        17 octobre 2023 à 17:57:32

        umfred a écrit:

        A mon avis, c'est parce que le chemin qui contient un espace doit être entouré de guillemets (chose classique dans la gestion des chemins) et donc le 1er cd ne marche pas, donc on reste à l'emplacement du script (pour t'en assurer, tu peux tester les commandes directement dans une invite de commande)

        malheureusement, ça ne marche pas 

        • Partager sur Facebook
        • Partager sur Twitter
          17 octobre 2023 à 18:28:34

          ce qui doit boguer alors c'est l'accent qui ne passe pas, il faut changer l'encodage du fichier par exemple (avec notepad++, choisir Encodage>codage des caractères>langues d'europe occidentale > OEM 850)

          ou alors, il faut changer l'encodage en bat via une commande chcp

          chcp 1252
          cd /d Q:\Espace d'échange
          chcp 850

          chcp 1252 => on passe en mode d'encodage standard de windows

          chcp 850 à la fin pour revenir à l'encodage par défaut de l'invite de commande

          (au fait, tu as une jolie boucle infinie pour la création des fichiers il me semble, non?)

          • Partager sur Facebook
          • Partager sur Twitter
            18 octobre 2023 à 17:57:29

            umfred a écrit:

            ce qui doit boguer alors c'est l'accent qui ne passe pas, il faut changer l'encodage du fichier par exemple (avec notepad++, choisir Encodage>codage des caractères>langues d'europe occidentale > OEM 850)

            ou alors, il faut changer l'encodage en bat via une commande chcp

            chcp 1252
            cd /d Q:\Espace d'échange
            chcp 850

            chcp 1252 => on passe en mode d'encodage standard de windows

            chcp 850 à la fin pour revenir à l'encodage par défaut de l'invite de commande

            (au fait, tu as une jolie boucle infinie pour la création des fichiers il me semble, non?)

            Ça ne marche toujours pas, et oui c'est un script destiné à la création de fichier en boucle, je voudrais troller un ami via mon pc, le Q: est le disque dur sur son serveur auquel j'ai accés.
            • Partager sur Facebook
            • Partager sur Twitter
              18 octobre 2023 à 18:03:58

              il faut être plus précis sur le "ça ne marche toujours pas" sinon on ne va pas avancer.

              Mes 3 lignes uniquement dans un bat, ça donne quoi en sortie ? (le bat est à lancer en ligne de commande sinon on n'aura pas le résultat des commandes et on ne pourra pas avancer)

              • Partager sur Facebook
              • Partager sur Twitter
                18 octobre 2023 à 18:26:41

                umfred a écrit:

                il faut être plus précis sur le "ça ne marche toujours pas" sinon on ne va pas avancer.

                Mes 3 lignes uniquement dans un bat, ça donne quoi en sortie ? (le bat est à lancer en ligne de commande sinon on n'aura pas le résultat des commandes et on ne pourra pas avancer)


                le problème reste le même, mais lorsque les commande sont effectué dans l'invite de commande cela trouve effectivement le chemin d’accès, peut être qu'en le mettant dans la boucle infini ça devrait marcher

                Edit: Je peux créer le fichier via l'invite de commande mais le programme continue de ne pas vouloir créer le fichier à l'endroit souhaité mais seulement dans son fichier

                -
                Edité par LegSauvage 19 octobre 2023 à 8:05:28

                • Partager sur Facebook
                • Partager sur Twitter
                  19 octobre 2023 à 21:55:30

                  Bonsoir,

                  Le plus simple serait de renommer le dossier histoire d'enlever l'apostrophe et l'accent si tu as les droits de le faire ?

                  Concernant le script :

                  @echo off
                  cd /D "Q:\Partage"
                  echo %CD%
                  pause
                  
                  :loop
                  set /A iCount+=1
                  if %iCount% GTR 100 (goto :quit)
                  type nul>%iCount%.txt
                  goto :loop
                  
                  :quit
                  pause
                  exit
                  



                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 octobre 2023 à 11:17:43

                    perso j'ai fait ça et ça fonctionne très bien si le répertoire ciblé existe bien sûr, dans le cas contraire, il faut le créer avant. 

                    chcp 1252
                    cd /d P:\test d'échange
                    chcp 850
                    set /A a=1
                    :loop
                    type nul > %a%.txt
                    set /A a+=1
                    if %a% == 5 goto end
                    goto loop
                    :end



                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 octobre 2023 à 20:05:13

                      Bonsoir,

                      J'avais fait un script pour "expliquer" ou du moins montrer le fonctionnement des accents en batch.

                      C'est une autre méthode que celle montré par umfred, mes scripts batch sont encoder en ANSI (fait par Notepad++).

                      @echo off
                      Title Accent en batch !
                      echo.
                      echo Avec le logiciel PowerBatch, les accents sont g‚r‚s automatiquement !!!
                      echo.
                      echo La seconde m‚thode consiste … ‚crire les accents depuis l'invite de commande (cmd.exe)
                      echo dans un fichier texte via la commande 'echo ‚…— et autre accent^>file.txt'
                      echo Ainsi il vous faudra juste r‚cup‚rer ces accents visuellement bizarre pour les placer dans votre script .bat
                      echo Attention, votre script doit ˆtre encod‚ en ANSI !!
                      echo.
                      echo Voici quelques accents :
                      echo.
                      ::echo é è à î ê ë â ù (visuellement correcte dans le fichier)
                      echo   ‚ Š … Œ ˆ ‰ ƒ — (visuellement correcte dans cmd)
                      echo.
                      pause>nul|echo Appuyez sur une touche pour quitter le script...
                      exit
                      



                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 novembre 2023 à 19:32:11

                        Merci bien, j'ai réussi à le résoudre
                        • Partager sur Facebook
                        • Partager sur Twitter

                        probléme de répertoire

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        • Editeur
                        • Markdown