Comment exécuter un script PowerShell?
powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'
(avec ou sans --noexit
)qui ne renvoie rien du tout, sauf que le nom du fichier est sorti.
Pas d'erreur, pas de message, rien. Oh, quand j'ajoute -noexit
, la même chose se produit, mais je reste dans PowerShell et je dois sortir manuellement.
Le fichier .ps1 est supposé exécuter un programme et renvoyer le niveau d'erreur en fonction de la sortie de ce programme. Mais je suis sûr que je n'y suis même pas encore arrivé.
Qu'est-ce que je fais mal?
Naviguez jusqu'au répertoire où réside le script
PS> cd C:\my_path\yada_yada\ (enter)
Exécutez le script:
PS> .\run_import_script.ps1 (enter)
Qu'est-ce que je rate??
Ou: vous pouvez exécuter le script PowerShell à partir de cmd.exe
comme ceci:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
selon cela blog post ici
Ou vous pouvez même exécuter votre script Powershell depuis votre application C # :-)
Exécuter de manière asynchrone des scripts PowerShell à partir de votre application C #
Si vous utilisez PowerShell 2.0, utilisez le paramètre -File de PowerShell.exe pour appeler un script depuis un autre environnement tel que cmd.exe, par exemple:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
Si vous souhaitez exécuter un script sans modifier la stratégie d'exécution de script par défaut, vous pouvez utiliser le commutateur de contournement lors du lancement de Windows PowerShell .
powershell [-noexit] -executionpolicy bypass -File <Filename>
Type:
powershell -executionpolicy bypass -File .\Test.ps1
NOTE: Ici, Test.ps1
est le script PowerShell.
J'ai eu le même problème, et j'ai essayé et essayé ... Enfin j'ai utilisé:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
Et mettez cette ligne dans un fichier de commandes, et cela fonctionne.
Si vous ne disposez que de PowerShell 1., cela semble suffire:
powershell -command - < c:\mypath\myscript.ps1
Il dirige le fichier de script vers la ligne de commande PowerShell.
Plutôt facile. Cliquez avec le bouton droit de la souris sur le fichier .ps1 dans Windows. Dans le menu Shell, cliquez sur Exécuter avec PowerShell.
Utilisation du fichier cmd (BAT):
@echo off
color 1F
echo.
C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"
:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL
Si vous avez besoin de exécuter en tant qu'administrateur:
Un moyen simple consiste à utiliser PowerShell ISE , ouvrez un script, exécutez et appelez votre script, fonction ...
Donne le chemin du script, c’est-à-dire le chemin choisi par cmd:
$> . c:\program file\prog.ps1
Exécutez la fonction de point d’entrée de PowerShell:
Par exemple, $> add or entry_func or main
Si vous souhaitez exécuter un script PowerShell avec le Planificateur de tâches Windows, procédez comme suit:
Créer une tâche
Définissez Program/Script
sur Powershell.exe
Définissez Arguments
sur -File "C:\xxx.ps1"
Cela provient d'une autre réponse, Comment puis-je exécuter un script PowerShell automatiquement à l'aide du planificateur de tâches Windows?.
Si votre script porte l'extension .ps1
et que vous vous trouvez dans une fenêtre PowerShell, exécutez simplement ./myscript.ps1
(en supposant que le fichier se trouve dans votre répertoire de travail).
De toute façon, cela est vrai pour moi sur Windows 10 avec PowerShell version 5.1 et je ne pense pas avoir rien fait pour rendre cela possible.
Utilisez le paramètre -File
devant le nom du fichier. Les guillemets font penser à PowerShell que c'est une chaîne de commandes.