Comment exécuter un script PowerShell?
comment exécuter un script PowerShell?
- j'ai un script nommé myscript.ps1 151970920"
- j'ai toutes les structures nécessaires installé
- j'ai mis que politique d'exécution chose
- j'ai suivi les instructions sur cette page D'aide du MSDN
et suis en train de l'exécuter comme:
powershell.exe 'C:my_pathyada_yadarun_import_script.ps1'
(avec ou sans--noexit
)
qui ne renvoie exactement rien, sauf que le nom du fichier est sortie.
Aucune erreur, aucun 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 censé exécuter un programme, et retourner le niveau d'erreur dépendant de la sortie de ce programme. Mais je suis assez sûr que je ne suis même pas y arriver encore.
Qu'est-ce que je fais de mal?
13 réponses
- Windows PowerShell de lancement, et attendre un moment pour l'invite de commande PS pour apparaître
-
naviguez vers le répertoire où vit le script
PS> cd C:\my_path\yada_yada\ (enter)
-
Exécuter le script:
PS> .\run_import_script.ps1 (enter)
Qu'est-ce que je rate??
ou: vous pouvez exécuter le script PowerShell de cmd.exe
comme ceci:
powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)
selon ce billet de blog ici
ou vous pouvez même exécuter votre script Powershell à partir de votre application C#: -)
exécuter asynchrone des scripts PowerShell à partir de votre application C#
si vous êtes sous PowerShell 2.0, utilisez PowerShell.le paramètre exe-File pour invoquer un script d'un autre environnement comme cmd.exe par exemple:
Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1
si vous voulez exécuter un script sans modifier la Politique d'exécution par défaut, vous pouvez utiliser le bypass switch lors du lancement 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é... Finalement j'ai utilisé:
powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"
et mettez cette ligne dans un fichier batch, et cela fonctionne.
si vous avez seulement PowerShell 1.0 , cela semble faire l'affaire assez bien:
powershell -command - < c:\mypath\myscript.ps1
il achemine le fichier script vers la ligne de commande PowerShell.
Un moyen facile est d'utiliser des PowerShell ISE , ouvrez le script, exécutez et d'appeler votre script, la fonction...
utilisant le 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 :
- faire un raccourci pointé vers l'invite de commande (je l'ai appelé Commande Administrative Rapide)
- ouvrir les propriétés du raccourci et aller à L'onglet Compatibilité
- dans la section Niveau privilège, assurez-vous que la case à cocher à côté de "Exécuter ce programme en tant qu'administrateur" est cochée.
assez facile. Cliquez sur le bouton droit de la souris .ps1 fichier dans Windows et dans le menu shell cliquez sur exécuter avec PowerShell .
-
donnez le chemin du script, c'est-à-dire le réglage du chemin par cmd:
$> . c:\program file\prog.ps1
-
exécuter la fonction de point d'entrée de PowerShell:
par exemple,
$> add or entry_func or main
si votre script est nommé avec l'extension .ps1
et que vous êtes dans une fenêtre PowerShell, vous n'avez qu'à lancer ./myscript.ps1
(en supposant que le fichier se trouve dans votre répertoire de travail).
c'est vrai pour moi de toute façon sur Windows 10 avec PowerShell version 5.1 de toute façon, et je ne pense pas avoir fait quoi que ce soit pour rendre cela possible.
dans le cas où vous voulez exécuter PowerShell script avec Windows Task Scheduler, s'il vous plaît suivre les étapes ci-dessous:
-
"créer une tâche
-
ensemble
Program/Script
àPowershell.exe
-
ensemble
Arguments
à-File "C:\xxx.ps1"
C'est à partir d'un autre thread de réponse https://stackoverflow.com/a/23954618/3378204
utilisez le paramètre-File devant le nom du fichier. Les guillemets font penser à powershell qu'il s'agit d'une chaîne de commandes.