Lancer PowerShell à partir d'un .bat
Résolu
Bonjour tout le monde !
J'essaye de lancer ce code .Bat sous PowerShell :
J'ai donc créé ce code pour le lancer avec PowerShell :
Sauf que j'obtiens ça :
Et quand je lance mon .Bat depuis PowerShell il me lance le CMD, alors que je veux qu'il soit lancé via PowerShell.
Je vous met le script .bat en espérant être suffisamment clair dans mes propos. Dans le cas contraire, excusez moi ^^' j'ai souvent du mal à me faire comprendre.
Merci d'avance pour l'aide que vous m'apporterez ^^
J'essaye de lancer ce code .Bat sous PowerShell :
@echo off
cls
set /p IP="Entrez une IP="
set /p Incrementation="Entrez une Date (AA-MM-JJ)="
./mtcli_memo.exe %IP% %Incrementation% >mon_fichier.csv
echo.
J'ai donc créé ce code pour le lancer avec PowerShell :
@echo off
Powershell.exe -executionpolicy remotesigned -File C:\Users\Shadow81\Desktop\Code.ps1
pause
Sauf que j'obtiens ça :
L'argument « C:\Users\Shadow81\Desktop\Code.ps1 » du paramètre -File n'existe pas. Indiquez le chemin d'accès vers un fichier « .ps1 » existant pour l'argument du paramètre -File.
Windows PowerShell
Copyright (C) Microsoft Corporation. Tous droits réservés.
Testez le nouveau système multiplateforme PowerShell https://aka.ms/pscore6
Appuyez sur une touche pour continuer...
Et quand je lance mon .Bat depuis PowerShell il me lance le CMD, alors que je veux qu'il soit lancé via PowerShell.
Je vous met le script .bat en espérant être suffisamment clair dans mes propos. Dans le cas contraire, excusez moi ^^' j'ai souvent du mal à me faire comprendre.
Merci d'avance pour l'aide que vous m'apporterez ^^
2 réponses
-
Merci pour t'as réponse;
je veux le lancer en .Bat pour en faire un exécutable, mais si on peut lancer direct PowerShell en exécutable, je souhaite bien savoir comment faire.
Et le premier code est le main que j'ai fait en. Bat, car je ne connais pas la syntaxe de PowerShell mais en PowerShell il devra ressembler à ça
^^'-
Bonjour,
Je n'ai toujours rien compris, et ça ne va pas être simple parce que ta maîtrise de la syntaxe .bat n'est pas au top non plus si on juge par ton premier post au même sujet sur l'utilisation des variables.
Quelle est l'utilité de lancer un Powershell qui contiendrait uniquement ton .bat de départ, autant ne lancer que le batch, non?
Si on tient vraiment à Powershell, il exécute aussi les commandes Dos habituelles, et on va le lancer non pas en cliquant sur un .bat/.cmd mais en cliquant sur le .ps1 sous lequel on l'a enregistré.
La solution mixte (lancer Powershell dans un batch, mais qui n'offre pas d'intérêt hormis circonstances très particulières) a été illustrée en <1>.
Enfin, et même si je suis moi aussi très nul en Powershell, on ne voit pas très bien ce que vient faire
-executionpolicy remotesigned -File dans l'affaire: il ne s'agit que d'autoriser l'exécution ou pas d'un script, le commutateur remotesigned prescrivant de vérifier qu'un script téléchargé à partir d'Internet est signé par un éditeur de confiance.
La syntaxe en est inappropriée, expliquant l'erreur, et comme illustré dans le lien en <1> que tu n'auras pas lu:
Pour que Powershell reconnaisse -executionpolicy remotesigned, il faut que ces paramètres soient appelés par un cmdlet, par exemple:
Set-ExecutionPolicy...
...mais qui ne reconnaît pas le commutateur -File, voilà pourquoi votre fille est muette.
Le contournement, lui aussi illustré en <1> est:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& 'C:\Users\xxx\Desktop\xxx.ps1'"
On peut aussi bypasser la demande de confirmation lors de l'exécution du script, par exemple via:
Get-Content .Code.ps1 | PowerShell.exe -noprofile -
qui, une fois le chemin précisé si cette commande n'est pas lancée dans le même dossier, va exécuter Code.ps1 dans le terminal Powershell sans autre intervention.
-