Поскольку у меня нет доступа к вашей файловой системе, я не могу проверить, есть ли где-нибудь (скрытый) Folder A
вниз по дереву папок D:\Temp
...
Тем не менее, распространенная ошибка Сравнение с $Null
на самом деле описано в примечании Об операторах сравнения :
Если вам нужно сравнить значение с $null
Вы должны поставить $null
в левой части сравнения. Когда вы сравниваете $null
с Object[]
, результатом является False, поскольку объект сравнения является массивом. Когда вы сравниваете массив с $null
, сравнение отфильтровывает любые значения $null
, хранящиеся в массиве. Например:
PS> $null -ne $null, "hello"
True
PS> $null, "hello" -ne $null
hello
В вашем случае правильный синтаксис должен быть как минимум:
if($null -eq (Get-ChildItem -Recurse -path "D:\Temp" "Folder A"))
{
checkProfileThenConvert \\Here I perform the convertion and now D:\Temp\Folder A exists
}
else
{
Remove-Item "D:\Temp\Folder A" -Recurse -Force -Confirm:$false
checkProfileThenConvert
}