2014-04-22 50 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:\>