Что-то похожее на $IsLinux
или $IsWindows
.
Есть ли переменная PowerShell, которую можно проверить, чтобы узнать, выполняется ли сценарий в облачной оболочке Azure?
Ответы (2)
Из вашего описания я не уверен, как вы запустили свой скрипт. Если вы используете Start-Job
для запуска сценария PowerShell в качестве фонового задания можно использовать Get-Job
, чтобы увидеть файл State
.
Start-Job -FilePath ./GetDate.ps1
Get-Job
person
Joy Wang
schedule
13.01.2020
Зачем мне делать
start-job
каждый раз, когда я запускаю скрипт в консоли Azure? Что если я захочу использовать один и тот же скрипт локально и в консоли, но сохранить данные в другом месте? Мне не нужен хак, мне нужно масштабируемое, переносимое и тестируемое решение.
- person Doug Finke; 17.01.2020
Я бы предложил запустить команду в try/catch, специфичную для облачной оболочки, если это то, что вы ищете?
try {
$sessioninfo = Get-CloudDrive
if ($sessioninfo) {
Write-Host "Running in Cloud Shell mode..." -ForegroundColor Green
$path = ($home + "/clouddrive/" + "report" + "-$(get-date -Format yyyyddMM_hhmmtt).csv")
}
}
catch {
Write-Host "Running in local PowerShell session mode..." -ForegroundColor Yellow
$path = "C:\localpath\report"+"-$(get-date -Format yyyyddMM_hhmmtt).csv"
}
person
Matthew Blessing
schedule
28.12.2020