Partage
  • Partager sur Facebook
  • Partager sur Twitter

BATCH - Problème execution à cause d'une variable

    7 octobre 2020 à 11:44:55

    Bonjour,

    J'ai un petit problème.

    Quand je lance mon .bat depuis le PC distant pas de problème, il se lance sans erreur.
    Dès que je le lance depuis PHP il m'exécute le fichier avec une erreur de syntaxe et me le quitte.

    Après des heures de recherche la seule erreur viens du faite que j'utilise la variable "%~n0" pour récupérer le nom de mon fichier sans l’extension.

    Si j’enlève cette variable et que je mets le nom du fichier directement (une adresse IP) le fichier fonctionne partout.

    J'aimerais utilise ce type de variable car j'ai un peu plus de 8000 fichiers et sa va être long de tous les faire un par un.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2020 à 12:11:52

      StevenLegrand a écrit:

      Si j’enlève cette variable et que je mets le nom du fichier directement (une adresse IP) le fichier fonctionne partout.

      tu entends quoi par adresse IP ici ? %~n0 fait référence au nom de ton fichier batch (OK je viens de voir le début de discussion (laissé sans suite sur developpez => https://www.developpez.net/forums/d2086150/general-developpement/programmation-systeme/windows/scripts-batch/bat-ne-se-lance-php/ )

      Si tu affiches la valeur de IP par un @echo %IP% juste après le SET, tu as quelle valeur ?
      • Partager sur Facebook
      • Partager sur Twitter
        10 octobre 2020 à 17:03:00

        Bonjour,
        Désoler pour le temps de réponse!!

        Alors je viens de faire le test en lançant mon .bat depuis le php et il me donne avec le @echo

        192.168.0.5  (5)

        L'adresse IP est bien le nom du fichier, mais il me rajoute un 5 entre parenthèse.

        Si je fais la même chose depuis le fichier directement, le @echo me donne bien l'adresse sans le (5).

        Merci d'avance

        -
        Edité par StevenLegrand 10 octobre 2020 à 18:04:53

        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2020 à 13:56:52

          tu le lances comment ton script par php ? shell_exec, popen, exec, passthru, ...
          • Partager sur Facebook
          • Partager sur Twitter
            12 octobre 2020 à 20:31:16

            Je lance mon PHP sur un PC distant. Tous mes .bat se trouve sur mon serveur.

            J'aimerais que quand je clic sur le lien, il me lance mon .bat sur le PC distant.

            Mon code php pour lancer le .bat est simple.

            echo '<td align="center"><a href="../Script/Region1/Acces/192.168.0.5.bat">Acces PC</a>';

            Actuellement le seul navigateur qui permet de l’exécuter sans le télécharger avant, c'est "EDGE".

            Quand j'utilise un "shell_exec" il me lance le bat sur mon serveur, donc aucun intérêt pour moi.

            Merci d'avance



            • Partager sur Facebook
            • Partager sur Twitter
              13 octobre 2020 à 12:07:28

              Est-ce que tes scripts sont tous identiques ? si oui, passer l'adresse IP en paramètre plutot qu'en nom de fichier ?

              ou alors traduire ce script batch en script php ?
              (ça ne marche pas sur les autres navigateurs pour des raisons de sécurité en fait)

              • Partager sur Facebook
              • Partager sur Twitter
                13 octobre 2020 à 14:09:51

                Mon scripts PHP sont presque tous identiques. Ainsi que les .bat.

                Mes .bat servent une fois lancer, ouvrir un logiciel (DameWare) sur mon pc avec l'IP, l'identifiant et le mot de passe de la machine, comme sa l’accès au pc se fait sans rien renseigner comme donnée.

                Si il y aune autre possibilité, je suis preneur. Comment mettre l'adresse IP en paramètre?

                En faite dans mon PHP les adresse IP son deja repris comme ceci:

                echo '<td align="center"><a href="../Script/Region1/Acces/'.$value.'.bat">Acces PC</a>';

                Est-ce que le $value peux être utiliser pour alimenter mon .bat?
                Le $value est alimenter par un .txt avec toutes les IP a intérieurs.

                J'avais malheureusement bien compris que un problème de sécurité allez me poser soucis.

                Merci

                • Partager sur Facebook
                • Partager sur Twitter
                  13 octobre 2020 à 14:42:37

                  pour passer un paramètre à un fichier .bat,  bah il faut le mettre après ^^ et dans le script, c'est la variable %1 (%0 étant la commande); ça donnerait un truc du genre

                  echo '<td align="center"><a href="../Script/Region1/Acces/script.bat '.$value.'">Acces PC</a>';
                  

                  mais je ne sais pas si ça passera.
                  si tu fais un echo $value (en php), tu as bien une seule adresse IP ? (cet echo est dans une boucle qui lit ton fichier texte donc?)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 octobre 2020 à 18:16:06

                    Dans mon fichier texte il y a beaucoup d'IP en fonction de mon script PHP que je lance, il y a entre 1 a 150 ip dans chaque fichier.

                    Je vais essayer ton astuce demain je te tiendrais au courant.

                    Merci de l'info

                    Mon scripts PHP reprend la liste des IP dans mon fichier txt et me les donnent 1 par 1 en me disant si il ping ou non et la ligne que j'ai envoyé me sers a avoir un accès a un fichier .bat pour avoir un accès rapide au serveur.

                    J'ai essaye mais je n'arrive pas a transférer ma variable $value vers mon bat.

                    echo '<td align="center"><a href="../Script/Region1/Acces/script.bat" "'.$value.'">Acces PC</a>';

                    et mon script.bat

                    set ipserv=%1

                    Existe-il une subtilité?

                    Merci d'avance

                    -
                    Edité par StevenLegrand 14 octobre 2020 à 2:11:37

                    • Partager sur Facebook
                    • Partager sur Twitter

                    BATCH - Problème execution à cause d'une variable

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown