从命令行输入 Powershell_ISE 的参数

Parameters into Powershell_ISE from Command Line

我在 Powershell_ISE 中开发了一个脚本,用于在一台服务器上备份 SQL 服务器数据库,将文件移动到另一台服务器并使用不同的数据库名称恢复到目标服务器。工作正常。

它使用了 6 个强制参数。在 Powershell_ISE 我可以 运行

    C:\PowershellScripts\Servers\CRMBackup.ps1 -SrcSrv uk-sb-sql12\wss -SrcDb UAT_2016_MSCRM
     -SrcBak \uk-sb-sql12\backup\ -TrgSrv uk-sb-sql12\wss -TrgDb preprod_mscrm66 -TrgBak 
     \uk-sb-sql12\backup\

而且效果很好。

不过我无法从命令行将其设置为 运行。我该如何实现?

如果我运行

    powershell_ise.exe "C:\PowershellScripts\Servers\CRMBackup.ps1" -SrcSrv uk-sb-sql12\wss 
    -SrcDb UAT_2016_MSCRM -SrcBak \uk-sb-sql12\backup\ -TrgSrv uk-sb-sql12\wss -TrgDb 
    preprod_mscrm66 -TrgBak \uk-sb-sql12\backup\

在命令提示符下我收到一个错误:

如果我调用 Powershell 而不是 Powershell_ISE,一切都很好:

    powershell.exe "C:\PowershellScripts\Servers\CRMBackup.ps1" -SrcSrv uk-sb-sql12\wss 
    -SrcDb UAT_2016_MSCRM -SrcBak \uk-sb-sql12\backup\ -TrgSrv uk-sb-sql12\wss -TrgDb 
    preprod_mscrm66 -TrgBak \uk-sb-sql12\backup\

成功完成:

谁能告诉我如何将命令行参数传递给 Powershell_ISE?

谢谢

很遗憾,您无法使用您的参数从命令行启动 ISE。只能自定义会话的可能参数列表在这里:

https://technet.microsoft.com/en-us/library/hh847883

你试过吗? (powershell.exe 而不是 powershell_ise.exe)

powershell.exe "C:\PowershellScripts\Servers\CRMBackup.ps1" -SrcSrv uk-sb-sql12\wss -SrcDb UAT_2016_MSCRM -SrcBak \uk-sb-sql12\backup\ -TrgSrv uk-sb-sql12\wss -TrgDb preprod_mscrm66 -TrgBak \uk-sb-sql12\backup\

您不能从命令行将参数用于 Powershell_ISE。

一些背景:

您使用 PowerShell ISE 开发您的脚本(或记事本或其他)并使用 powershell.exe 执行它们等结束了。您可以通过不同的方式执行脚本:

  • DOS 命令,调用 powershell.exe,正如您在问题中指出的那样。
  • PowerShell 命令,调用 C:\PowershellScripts\Servers\CRMBackup.ps1
  • 来自 Windows 任务计划程序(或类似工具...)
  • 来自 CI 工具(Jenkins、TeamCity...)

当然,您可以在开发脚本时从 PowerShell ISE 执行脚本,这可以通过单击“开始”(或按 F5)来完成,您可以将参数作为 explained here 传递。但是您 无法执行将参数传递给 powershell_ise.exe 的脚本。