Port un cod vechi de la AutoHotkey „de râs” și cred că am dat peste o caracteristică neintenționată pe care o avea...
Vreau să pot face ceva „ca”
$ws = „Minimizat”
$parametri = "/k dir F:\"
start-process cmd.exe ( $(dacă($parametri){"-argumentlist $parametri"}) )( $(dacă ($ws){"-windowystyle $ws"}) )
Dar nu le „concatenă” niciodată într-o singură comandă „holistic” fără de asemenea aruncându-le pe toate la cmd.exe - sper naiv ca Powershell să poată „prinde” WindowStyle în sine, de exemplu, și să minimizeze fereastra (în prezent, este transmis direct la cmd.exe care îl ignoră).
Știu că sunt puțin supărat, dar mă chinui, de asemenea, să găsesc termenii potriviți pe care să îi caut - about_parsing nu a fost de ajutor și nici milioanele de exemple de concatenare a șirurilor nu sunt bune - îmi doresc foarte mult ca Powershell să fie liber suficient pentru a-mi permite să trec de la șiruri la parametri în mod dinamic, ceea ce presupun că este împotriva unei decizii de proiectare conștientă undeva...
Deci alternativa este o grămadă de declarații if pentru a se adapta diferitelor permutări ale opțiunilor...
dacă ($ws -și -(nu $parametri)) {start-process cmd.exe -windowystyle $ws}
if ($parametri -și -(nu $ws)) {start-process cmd.exe -argumentlist $parametri}
if ($parametri -și $ws) {start-process cmd.exe -argumentlist $parametri -windowystyle $ws}
... până la greață
Dacă nu are cineva idei mai bune?