Wie startet man die Powershell ISE ohne geöffnete Datei?

1016
Billy ONeal

Beim Starten powershell_ise.exewird standardmäßig eine geöffnete Datei "Untitled.ps1" angezeigt. Gibt es einen Mechanismus, mit dem ISE aufgefordert wird, nur die Eingabeaufforderung zu starten?

Das heißt, in dem Moment, wenn ich Powershell ISE starte, bekomme ich Folgendes:

Powershell with Empty Document

Ich möchte folgendes:

Powershell with No Document

2
Warum können Sie PowerShell nicht einfach starten? Tanner Faulkner vor 9 Jahren 0
@Tanner: Unicode-Unterstützung, Intellisense, schnelleres Echo usw. Billy ONeal vor 9 Jahren 1
Du meinst so: ? http://i.imgur.com/yr3xSRu.png - Das ist meine standardmäßige Windows 8-Powershell-ISE - nur mit der Konsole? Samuel Nicholson vor 9 Jahren 0

3 Antworten auf die Frage

2
jerbil24

Super alte Frage an dieser Stelle, aber ich habe mich einfach von @Windos zurückgezogen, um eine Lösung zu finden, die für mich funktioniert. Da ich ISE-Steroide verwende, gibt es eine Funktion, um geöffnete Dateien beizubehalten. Ich wollte beim Start nicht alle geöffneten Dateien schließen, nur die ohne Titel.

foreach($file in $psISE.CurrentPowerShellTab.Files) { if ($file.DisplayName -like "Untitled*.ps1"){ $deleteMe = $file } } $psISE.CurrentPowerShellTab.Files.Remove($deleteMe) 

Wenn Sie versuchen, die Datei in der for-Schleife zu entfernen, erhalten Sie einen Aufzählungsfehler. Wenn beim Start $deletememehrere unbenannte Skripts geöffnet werden, könnte dies eine Arrayliste sein, die mehrere Dateien mit eigenen Dateien hinzufügt foreach, um alle zu entfernen.

1
Keltari

Passen Sie einfach Ihre ViewEinstellungen im Menü an.

  • Deaktivieren Sie das Kontrollkästchen Skript anzeigen
  • Deaktivieren Sie die Option zum Anzeigen des Befehls-Add-Ons
  • Deaktivieren Sie die Option Symbolleiste anzeigen
  • Deaktivieren Sie ggf. die anderen Optionen

Ich hätte schwören können, ich habe es versucht. Wenn Sie alle ISE-Instanzen schließen und neu starten, erinnert sich das daran? Billy ONeal vor 9 Jahren 0
Es hat für mich funktioniert Keltari vor 9 Jahren 0
1
Windos

Dies ist jetzt eine alte Frage, aber ich kam hierher und suchte nach einer Antwort, so dass ich die Ergebnisse meines Experiments geben würde.

Es gibt ein $psISEObjekt, das die ISE-Einstellungen, die geöffneten Dateien usw. steuert. Sie können damit viel tun.

Es gab eine vielversprechende Funktion:

$psISE.CurrentPowerShellTab.Files.Clear() 

Leider würden dadurch einfach alle geöffneten Dateien geschlossen (wenn sie gespeichert wurden) und dann eine neue unbenannte Datei geöffnet.

Ich endete damit:

$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) { $file = $psISE.CurrentPowerShellTab.Files[0] $psISE.CurrentPowerShellTab.Files.Remove($file) } 

Grundsätzlich werden die geöffneten Dateien ständig überprüft und geschlossen, bis keine geöffnet sind. Wenn Sie dies interaktiv ausführen und ein nicht gespeichertes Dokument geöffnet haben, würden Sie ziemlich schnell von Fehlern überflutet werden, da es sich nicht schließen lässt, und dann versuchen Sie, es erneut zu schließen.

Sie können dies dann in Ihr ISE-Profil einfügen (C: \ Benutzername \ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1). So sieht mein Profil momentan aus:

$null = while ($psISE.CurrentPowerShellTab.Files -ne $null) { $file = $psISE.CurrentPowerShellTab.Files[0] $psISE.CurrentPowerShellTab.Files.Remove($file) }  psEdit $PSScriptRoot\snips.ps1 

Da dies beim Starten der ISE ausgeführt wird, schließt es die unbenannte Standarddatei und öffnet eine zufällige Datei mit kleinen Ausschnitten, auf die ich stattdessen verweisen möchte. Sie können die letzte Zeile weglassen oder in eine beliebige Datei ändern, die Sie öffnen möchten.

nb, das $null =ist da, um die Ausgabe zu unterdrücken, und es ist schneller als das Piping zu Out-Null(was meiner Meinung nach wichtig ist, wenn Sie darauf warten, dass Ihr Editor geladen wird.)