Desidero saltare le righe Start-Transcript, Stop-Transcript se lo script PowerShell è in esecuzione da Powersehll ISE.C'è un modo per verificare se lo script è in esecuzione da PowerShell ISE?
È possibile? E come posso ottenere questo?
Desidero saltare le righe Start-Transcript, Stop-Transcript se lo script PowerShell è in esecuzione da Powersehll ISE.C'è un modo per verificare se lo script è in esecuzione da PowerShell ISE?
È possibile? E come posso ottenere questo?
Si può fare:
if ($host.name -eq 'ConsoleHost') # or -notmatch 'ISE'
{
.. do something ..
}
else
{
.. do something else..
}
Un'altra alternativa ...
Try {
Start-Transcript -Path <somepath> | Out-Null
}
Catch [System.Management.Automation.PSNotSupportedException] {
# The current PowerShell Host doesn't support transcribing
}
sai che questo è stato chiesto un po 'di tempo fa, e già segnato come risposta, ma un altro modo:
function Test-IsISE {
# try...catch accounts for:
# Set-StrictMode -Version latest
try {
return $psISE -ne $null;
}
catch {
return $false;
}
}
$ psise è disponibile in ISE:
Ecco un metodo che cerca l'esistenza di $psISE
senza eccezioni che generano:
if (Test-Path variable:global:psISE)
{
...
}