Есть ли способ проверить, работает ли script с помощью PowerShell ISE? Я хочу пропустить строки Start-Transcript, Stop-Transcript, если PowerShell script работает от Powersehll ISE. Возможно ли это? И как я могу достичь этого? Ответ 1 Вы можете сделать: if ($host.name -eq 'ConsoleHost') # or -notmatch 'ISE' { .. do something .. } else { .. do something else.. } Ответ 2 Знайте, что это было задано довольно давно и уже отмечено как ответ, но еще один способ: function Test-IsISE { # try...catch accounts for: # Set-StrictMode -Version latest try { return $psISE -ne $null; } catch { return $false; } } $psISE доступно в ISE: http://technet.microsoft.com/en-us/library/dd819500.aspx Ответ 3 Другая альтернатива... Try { Start-Transcript -Path <somepath> | Out-Null } Catch [System.Management.Automation.PSNotSupportedException] { # The current PowerShell Host doesn't support transcribing } Ответ 4 Здесь метод, который ищет существование $psISE без генерации исключений: if (Test-Path variable:global:psISE) { ... }
Ответ 1 Вы можете сделать: if ($host.name -eq 'ConsoleHost') # or -notmatch 'ISE' { .. do something .. } else { .. do something else.. }
Ответ 2 Знайте, что это было задано довольно давно и уже отмечено как ответ, но еще один способ: function Test-IsISE { # try...catch accounts for: # Set-StrictMode -Version latest try { return $psISE -ne $null; } catch { return $false; } } $psISE доступно в ISE: http://technet.microsoft.com/en-us/library/dd819500.aspx
Ответ 3 Другая альтернатива... Try { Start-Transcript -Path <somepath> | Out-Null } Catch [System.Management.Automation.PSNotSupportedException] { # The current PowerShell Host doesn't support transcribing }
Ответ 4 Здесь метод, который ищет существование $psISE без генерации исключений: if (Test-Path variable:global:psISE) { ... }