gpt4 book ai didi

powershell - 如何在开始时打开 ISE 中最后打开的文件

转载 作者:行者123 更新时间:2023-12-03 14:38:23 27 4
gpt4 key购买 nike

我想用豪华脚本自动打开 ISE 中最后打开的文件,
所以我尝试保存这些文件的文件路径,如下所示。

$action = {
$psISE.CurrentPowerShellTab.Files | select -ExpandProperty FullPath | ? { Test-Path $_ } |

Set-Content -Encoding String -Path$PSHOME\psISElastOpenedFiles.txt

Set-Content -Encoding String -Value "Now exiting..." -Path c:\exitingtest.log

}

Register-EngineEvent -SourceIdentifier Exit -SupportEvent -Action $action




当我关闭 ISE 时,会创建 exitingtest.log 并显示“现在退出...”,
但未创建 psISElastOpenedFiles.txt。
似乎 ISE 在退出事件执行之前关闭了所有打开的文件。

我应该使用计时器事件吗?

最佳答案

不是在退出时保存,而是在 CurrentTabs 和 Files 对象引发 CollectionChanged 事件时保存 MRU 信息。这是我正在使用的 MRU ISE 插件:

# Add to profile
if (test-path $env:TMP\ise_mru.txt)
{
$global:recentFiles = gc $env:TMP\ise_mru.txt | ?{$_}
}

else
{
$global:recentFiles = @()
}

function Update-MRU($newfile)
{
$global:recentFiles = @($newfile) + ($global:recentFiles -ne $newfile) | Select-Object -First 10

$psISE.PowerShellTabs | %{
$pstab = $_
@($pstab.AddOnsMenu.Submenus) | ?{$_.DisplayName -eq 'MRU'} | %{$pstab.AddOnsMenu.Submenus.Remove($_)}
$menu = $pstab.AddOnsMenu.Submenus.Add("MRU", $null, $null)
$global:recentFiles | ?{$_} | %{
$null = $menu.Submenus.Add($_, [ScriptBlock]::Create("psEdit '$_'"), $null)
}
}
$global:recentFiles | Out-File $env:TMP\ise_mru.txt
}

$null = Register-ObjectEvent -InputObject $psISE.PowerShellTabs -EventName CollectionChanged -Action {
if ($eventArgs.Action -ne 'Add')
{
return
}

Register-ObjectEvent -InputObject $eventArgs.NewItems[0].Files -EventName CollectionChanged -Action {
if ($eventArgs.Action -ne 'Add')
{
return
}
Update-MRU ($eventArgs.NewItems | ?{-not $_.IsUntitled}| %{$_.FullPath})
}
}

$null = Register-ObjectEvent -InputObject $psISE.CurrentPowerShellTab.Files -EventName CollectionChanged -Action {
if ($eventArgs.Action -ne 'Add')
{
return
}
Update-MRU ($eventArgs.NewItems | ?{-not $_.IsUntitled}| %{$_.FullPath})

}

Update-MRU

关于powershell - 如何在开始时打开 ISE 中最后打开的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com