2014-04-22 82 views
0

我非常新的PS ..我想創建一個Outlook郵箱恢復腳本,在那裏我可以輸入數據彈出..例如,當我運行這個腳本。 。PS腳本與POP爲INPUT

新MailboxRestoreRequest -SourceDatabase 「DBNAME」 - SourceStoreMailbox 「GUID」 - TargetMailbox 「RECDBNAME」 -AllowLegacyDNMismatch - TargetRootFolder 「USERNAME」 -name「NAME」

我希望腳本彈出詢問sourcedatabase然後sourcestoreemailbox然後targetmailbox然後targ etroot文件夾,我已經使用read-host命令沒有任何運氣......請幫助。

+0

爲什麼不只是使它的高級功能,並聲明這些是強制性的參數?然後PS會提示你輸入值,如果你沒有在函數調用中包含它們的話。 – mjolinor

+0

或者,如果您使用v2.0或之前將參數默認爲讀主機語句:$ myParam =(讀主機'請輸入一些值') – EBGreen

回答

0

就像mjolinor說的 - 使它成爲一種高級功能,你會得到所需的功能。它不會彈出一個窗口,雖然PS 2.0與Read-Host(也許只有PS 2.0 ISE做到了,不記得)一樣,但會在運行時詢問用戶輸入。

有關高級功能的幫助:

Get-Help about_Functions_Advanced 

兩個簡單的和簡單化的例子(使用PowerShell 3.0),表明其行爲有些差異;

function Test-Stuff { 
Param($TestParameter) 
    Write-Output "Testing $TestParameter" 
} 

輸出:

C:\>試驗東西

測試

C:\>

第二示例將提示用戶輸入時跑;

function Test-Stuff 
{ 
    [CmdletBinding()] 
    Param(
     [Parameter(Mandatory=$true)] 
     $TestParameter 
    ) 

    Write-Output "Testing $TestParameter" 
} 

輸出:

C:\>試驗東西

小命令試驗的東西在命令管道位置1個

供應值以下參數:

TestParameter:This Stuff

把測試這個東西

C:\>