2009-08-05 7 views

risposta

8

È possibile controllare la variabile $Host. Il nome sarà "ConsoleHost" nella console e "Host di Windows PowerShell ISE" nell'ISE. Anche se questo può probabilmente essere un po 'fasullo da testare perché ci si basa su stringhe leggibili dall'utente.

Un altro modo potrebbe essere quello di guardare $Host.UI.RawUI.BufferSize.Height che sembra essere sempre 0 nell'ISE. Qualcosa che non è molto comune con una finestra della console.

3

$ shellid anche, tuttavia un'opzione migliore sarebbe utilizzare i profili separati per ciascun host: Microsoft.PowerShell_Profile.ps1 e Microsoft.PowerShellISE_Profile.ps1. I rispettivi file verranno eseguiti per gli host specifici. Per eseguire qualcosa in tutti gli host utilizzare il generico, Profile.ps1

+0

'$ ShellId' restituisce" Microsoft.Powershell "sia nella console sia nell'ISE, almeno qui. – Joey

+0

Hmm, sono abituato a trattare con sqlps che è l'host di SQL 2008. Lo shellid tra questi host è diverso L'uso di profili separati è ancora una possibile soluzione. –