Я переношу какой-то старый код из AutoHotkey «для смеха» и думаю, что наткнулся на непреднамеренную функцию, которую он имел...
Я хочу иметь возможность делать что-то вроде
$ws = "Свернуто"
$parameters = "/k каталог F:\"
start-process cmd.exe ( $(if($parameters){"-argumentlist $parameters"}) )( $(if ($ws){"-windowystyle $ws"})) )
Но он никогда не «объединяет» их в одну команду «целостно» без также бросая их все в cmd.exe - я наивно надеюсь, что Powershell может, например, «поймать» сам WindowStyle и свернуть окно (в настоящее время он передается прямо в cmd.exe, который его игнорирует).
Я знаю, что немного злюсь, но я также изо всех сил пытаюсь найти правильные термины для поиска - about_parsing не помог, и миллионы примеров объединения строк тоже бесполезны - я действительно хочу, чтобы Powershell был свободен достаточно, чтобы позволить мне динамически переключаться со строк на параметры, что, как я предполагаю, где-то противоречит сознательному дизайнерскому решению...
Таким образом, альтернативой является набор операторов if для размещения различных перестановок параметров...
if ($ws -and -(не $parameters)) {start-process cmd.exe -windowystyle $ws}
if ($parameters -and -(not $ws)) {start-process cmd.exe -argumentlist $parameters}
if ($parameters -and $ws) {start-process cmd.exe -argumentlist $parameters -windowystyle $ws}
... до тошноты
Разве что у кого-то есть идеи получше?