Как передать переменную из одного оператора If в другой оператор If в Powershell? - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь, чтобы переменная, установленная в одном операторе If, могла быть передана другому оператору If. Это мой тестовый код:

if (test-path -path "C:\temp\watcher.txt"){
    $script:NewName = rename-item "C:\temp\watcher.txt" -NewName "C:\temp\date_watcher.txt"  
    }
    else
    {
    Write-host "nothin here boss"
    }
if (test-path -path $script:newname){
    $NewName2 = rename-item $script:newname -NewName "C:\temp\dateSECOND_watcher.txt"
    }
    else
    {
    Write-host "nothin here boss"
    }

Первый оператор работает как надо, но он не распознает переменную во втором операторе с ошибкой:

"Test-Path: невозможно связать аргумент с параметром 'Path', поскольку он имеет значение null"

Любая помощь с благодарностью.

1 Ответ

3 голосов
/ 03 июня 2019

Ваша переменная не инициализируется, потому что Rename-Item не возвращает объект по умолчанию.

Попробуйте добавить -PassThru, чтобы он возвратил ожидаемый объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...