0

假設我有test.ps1的功能,它的名字是顯示的代碼是象下面這樣:如何在PowerShell中調用一個函數?

. "some_path\some_other_script.ps1" 

function show { 
    write-host "Hello World" 
    #some other function call from some_other_script.ps1 
    ... 
} 

我怎麼能說展現在後續格式(在& - 調用operator)

powershell.exe "& '%test_script_path%\test.ps1'\show" 

我想我需要先點源test.ps1爲了從some_other_script.ps1

我知道我可以創建一個新的腳本,並把代碼顯示在新的腳本,而不是在獲得播放功能的依賴一個函數。這樣,當& ...腳本將被調用。但我不希望任何建議

回答

2

你可以點源,然後調用它創建一個新的腳本只是一個很簡單的功能

感謝。

powershell -Command ". '%test_script_path%\toolsql.ps1'; show" 

;用作命令之間的分隔符。

+0

嗨,我試過你的方法,但它說:「顯示:術語'顯示'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱檢查名稱的拼寫,或者如果包括路徑,驗證路徑是否正確,然後重試。「我敢肯定,演出是在腳本buecause,當我在PowerShell而不是在CMD點源代碼腳本,它運行成功 – user1888955

+0

顯示不在toolsql.ps1?再次讀你的文章,我假設show不是在toolsql中,而是在另一個名爲test.ps1的文件中?如果是這種情況,你需要點源代碼,例如'powershell -Command「。'%test_script_path%\ toolsql.ps1';'path \ to \ test.ps1';顯示'' –

+0

對不起@Patrick,我犯了一個錯字。顯示IS IN test.ps1。我已更新該帖子。所以基本上,我想先點測試test.ps1,然後在test.ps1中運行show。我希望你的第一種方法可以工作,但不知何故,它不... – user1888955

0

我非常感謝@Patrick Meinecke的幫助和時間,下面的命令有效。

powershell -command ". .\test.ps1;show" 

就像他在聊天中提到, 「這麼解釋 的。\只是表明它在當前目錄 它仍然需要其他。告訴PowerShell將腳本加載到當前上下文」

相關問題