小编Osc*_*ret的帖子

Powershell GUI 冻结,即使有运行空间

我正在使用 GUI 创建一个 powershell 脚本,它将用户配置文件从选定的源磁盘复制到目标磁盘。我使用 VS Community 2019 在 XAML 中创建了 GUI。该脚本的工作原理如下:您选择源磁盘、目标磁盘、用户配置文件和要复制的文件夹。当您按下“开始”按钮时,它会调用一个名为 Backup_data 的函数,在其中创建一个运行空间。在这个运行空间中,只有一个小的复制项,其中包含您选择的参数。

该脚本工作正常,所有想要的项目都被正确复制。问题是 GUI 在复制过程中冻结(没有“无响应”消息或其他任何信息,它只是完全冻结;无法单击任何地方,无法移动窗口)。我已经看到使用运行空间可以解决这个问题,但对我来说却不然。我错过了什么吗?

这是函数Backup_Data

Function BackupData {  
  ##CREATE RUNSPACE
  $PowerShell = [powershell]::Create()
  [void]$PowerShell.AddScript( {
      Param ($global:ReturnedDiskSource, $global:SelectedUser, $global:SelectedFolders, $global:ReturnedDiskDestination)
      ##SCRIPT BLOCK
      foreach ($item in $global:SelectedFolders) {
        Copy-Item -Path "$global:ReturnedDiskSource\Users\$global:SelectedUser\$item" -Destination "$global:ReturnedDiskDestination\Users\$global:SelectedUser\$item" -Force -Recurse
      }
    }).AddArgument($global:ReturnedDiskSource).AddArgument($global:SelectedUser).AddArgument($global:SelectedFolders).AddArgument($global:ReturnedDiskDestination)
  #Invoke the command
  $PowerShell.Invoke()
  $PowerShell.Dispose()
}
Run Code Online (Sandbox Code Playgroud)

wpf powershell xaml powershell-sdk runspace

4
推荐指数
1
解决办法
4429
查看次数

标签 统计

powershell ×1

powershell-sdk ×1

runspace ×1

wpf ×1

xaml ×1