126 votes

Comment puis-je obtenir le fichier d'exécution PowerShell actuel ?

Remarque : PowerShell 1.0
J'aimerais obtenir le nom du fichier PowerShell en cours d'exécution. Autrement dit, si je commence ma session comme ceci :

powershell.exe .\myfile.ps1

J'aimerais obtenir la chaîne ".\ myfile.ps1" (ou quelque chose comme ça). MODIFIER : "monfichier.ps1" est préférable.
Des idées ?

76voto

Keith Hill Points 776

Si vous ne voulez que le nom du fichier (pas le chemin complet), utilisez ceci :

$ScriptName = $MyInvocation.MyCommand.Name

34voto

JaredPar Points 333733

Essayez les

$path =  $MyInvocation.MyCommand.Definition 

suivants

Cela peut ne pas vous donner le chemin d'accès réel saisi, mais cela vous donnera un chemin d'accès valide au fichier.

9voto

MWR Points 91

attention : Contrairement aux variables automatiques $PSScriptRoot $PSCommandPath, les propriétés PSScriptRoot et PSCommandPath de la variable automatique $MyInvocation contiennent des informations sur l'invocateur ou le script appelant, pas le script courant.

ex. :

PS C:\Users\S_ms\OneDrive\Documents> C:\Users\SP_ms\OneDrive\Documents\DPM ...
=!C:\Users\S_ms\OneDrive\Documents\DPM.ps1

...où DPM.ps1 contient

Write-Host ("="+($MyInvocation.PSCommandPath)+"!"+$PSCommandPath)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X