PowerShell ISE öffnet vorherige Dateien

1073
Ryan Gates

Wie kann ich PowerShell ISE so konfigurieren, dass Registerkarten für jede Datei geöffnet werden, die zuvor beim Schließen geöffnet wurde?

Dies ist besonders hilfreich, da ich normalerweise wieder mit demselben Skript oder derselben Gruppe von Skripten arbeite.

1
Ich poste dies nicht als Antwort, da ich es noch nicht ausprobiert hatte, aber schau hier rein: http://jdhitsolutions.com/blog/powershell/4332/friday-fun-open-last-file- in-the-powershell-ise / Ob1lan vor 8 Jahren 0

2 Antworten auf die Frage

0
Windos

Leider konnte ich das nicht automatisch auf einen Timer einstellen. Es verwendet die $psISEVariable, auf die ich nicht über Hintergrundjobs oder registrierte Ereignisse zugreifen kann.

Sie müssen Ihr ISE-Profil bearbeiten. Möglicherweise müssen Sie es erstellen. Es befindet sich normalerweise in C: \ Users_USERNAME_ \ Documents \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1

Legen Sie zunächst fest, wo die Informationen zu dem, was Sie geöffnet haben, gespeichert werden sollen:

$SavePath = Join-Path -Path (Split-Path -Path $profile) -ChildPath 'openFiles.txt' 

Daraufhin wird eine TXT-Datei im selben Ordner wie das Profil abgelegt.

Überprüfen Sie dann, ob die Dateien vorhanden sind, und öffnen Sie die darin aufgeführten Dateien.

if (Test-Path -Path $SavePath) { $OpenFiles = Import-Csv -Path $SavePath psEdit -filenames $OpenFiles } 

Das letzte Teil des Puzzles ist eine Funktion, die die aktuell geöffneten Dateien erfasst und die vollständigen Pfade in die TXT-Datei speichert.

function Save-OpenFile { $Files = @()  foreach ($Tab in $psISE.PowerShellTabs) { foreach ($File in ($Tab.Files | Where-Object { !$_.IsUntitled })) { $Files += $File.FullPath } }  $Files | Out-File -FilePath $SavePath } 

Laufen Sie Save-OpenFileab und zu (und bevor Sie die ISE schließen) und das, was Sie zu diesem Zeitpunkt geöffnet hatten, wird wieder geöffnet. Wie ich zu Beginn dieses Beitrags sagte, wäre es toll, wenn Sie dies automatisch auslösen könnten, wenn die ISE geschlossen wird, aber ich nicht auf die Informationen innerhalb eines solchen Ereignisses zugreifen kann.

Sie können die Dinge vereinfachen, indem Sie einen Alias ​​für die Funktion hinzufügen oder etwas anderes tun, um sie Ihrem regulären Workflow hinzuzufügen, so dass es zur Gewohnheit wird, dass Sie sie regelmäßig ausführen.

Ich hoffe, das hilft oder startet Sie auf dem richtigen Weg, um eine vollständige Lösung zu erhalten.

Hinweis: Einige alternative PowerShell-Editoren öffnen Ihre Dokumente zwischen den Sitzungen erneut. Wenn Sie also nicht zufrieden sind, sollten Sie diese Optionen als Optionen untersuchen.

Welche alternativen PowerShell-Editoren bieten diese Funktionalität an? Ryan Gates vor 8 Jahren 0
@ RyanGates, ich denke PowerGUI. Es war Teil des Standard-Builds auf meiner Workstation, aber ich benutze es nicht persönlich. Andernfalls versuchen Sie PrimalScript / PowerShell Studio. Windos vor 8 Jahren 0
0
CMella

Sie könnten auch laufen:

Stop-Process $ pid -Force

Dadurch wird der Prozess für die ISE abgebrochen. Wenn Sie die ISE das nächste Mal ausführen, sollte sie aufgefordert werden, die letzten Registerkarten erneut zu laden.