В чем принципиальная разница между этими двумя командами?
$myVar = & "notepad.exe"
и
& "notepad.exe" | Set-Variable "myVar"
Для первой команды команда возвращается немедленно, не дожидаясь завершения exe, чтоэто было не то, что я ожидал.
Со вторым (или чем-то еще с конвейером, таким как | Out-File
или | Set-Content
), команда должным образом ждет, пока исполняемый файл запишет результат в stdout и завершится.