<p>Pour exécuter un script dans le même répertoire.</p>
<p>Dans <strong>PowerShell 3.0</strong> et ultérieur, vous pouvez utiliser la variable automatique <code>$PSScriptRoot</code> :</p>
<pre><code class="lang-auto">$PSScriptRoot/myScript1.ps1
</code></pre>
<p>Dans <strong>PowerShell 1.0 et 2.0</strong>, vous devez utiliser cette propriété spécifique :</p>
<pre><code class="lang-auto">& "$(Split-Path $MyInvocation.MyCommand.Path)/myScript1.ps1"
</code></pre>
<p>La raison pour laquelle vous devez utiliser cela et rien d’autre peut être illustrée avec ce script d’exemple.</p>
<pre><code class="lang-auto">## ScriptTest.ps1
Write-Host "InvocationName:" $MyInvocation.InvocationName
Write-Host "Path:" $MyInvocation.MyCommand.Path
</code></pre>
<p>Voici quelques résultats.</p>
<p>PS C:\Users\JasonAr> .\ScriptTest.ps1<br>
InvocationName: .\ScriptTest.ps1<br>
Path: C:\Users\JasonAr\ScriptTest.ps1</p>
<p>PS C:\Users\JasonAr> . .\ScriptTest.ps1<br>
InvocationName: .<br>
Path: C:\Users\JasonAr\ScriptTest.ps1</p>
<p>PS C:\Users\JasonAr> & “.\ScriptTest.ps1”<br>
InvocationName: &<br>
Path: C:\Users\JasonAr\ScriptTest.ps1</p>
<p>Dans <strong>PowerShell 3.0</strong> et ultérieur, vous pouvez utiliser la variable automatique <code>$PSScriptRoot</code> :</p>
<pre><code class="lang-auto">## ScriptTest.ps1
Write-Host "Script:" $PSCommandPath
Write-Host "Path:" $PSScriptRoot
</code></pre>
<p>PS C:\Users\jarcher> .\ScriptTest.ps1<br>
Script: C:\Users\jarcher\ScriptTest.ps1<br>
Path: C:\Users\jarcher</p>