2015-05-27 128 views
1

像:對於執行另一個powershell的powershell,「&」和「。」之間有什麼區別?

& another.ps1 

而且

. another.ps1 

什麼是他們的區別? 我希望獲取另一個powershell腳本的輸出文本,但不想導入另一個腳本中定義的內部函數。我可以使用什麼聲明?我發現即使「&」命令也會自動導入其他powershell腳本的所有函數定義。

謝謝。

+0

我根本沒有看到關於功能的所有效果。它們與調用操作符(「&」)不可見,但在使用點源操作符(「。」)時可見。 –

回答

6

區別在於範圍。 &將在它自己的範圍內運行腳本。 .將在當前範圍內運行腳本。

$ErrorView = 'CategoryView' 
$x = 'Test' 

. { Get-variable x -Scope 0 } 
& { Get-Variable x -Scope 0 } 


Name       Value                  
----       -----                  
x        Test                  
ObjectNotFound: (x:String) [Get-Variable], ItemNotFoundException 

在第一示例中,腳本是點源到當前範圍,和$ X在0範圍

是可見的。在第二個例子中,腳本調用與&操作者和$ x在範圍0處不可見。

相關問題