ฉันกำลังย้ายรหัสเก่าจาก AutoHotkey 'เพื่อหัวเราะ' และคิดว่าฉันบังเอิญเจอฟีเจอร์ที่ไม่ได้ตั้งใจซึ่งมี...
ฉันอยากจะทำบางอย่างที่ 'ชอบ'
$ws = "ย่อเล็กสุด"
$พารามิเตอร์ = "/k dir F:\"
เริ่มกระบวนการ cmd.exe ( $(if($parameters){"-argumentlist $parameters"}) )( $(if ($ws){"-windowystyle $ws"}) )
แต่มันไม่เคย 'เชื่อมโยง' พวกมันเป็นคำสั่งเดียว 'แบบองค์รวม' โดยไม่มี อีกด้วย โยนมันทั้งหมดไปที่ cmd.exe - ฉันหวังอย่างไร้เดียงสาว่า Powershell จะสามารถ 'จับ' WindowStyle เองและย่อขนาดหน้าต่าง (ปัจจุบันมันถูกส่งตรงไปยัง cmd.exe ซึ่งไม่สนใจมัน)
ฉันรู้ว่าฉันค่อนข้างโมโห แต่ฉันก็ยังดิ้นรนที่จะหาคำที่เหมาะสมในการค้นหา - about_parsing ก็ไม่มีประโยชน์และตัวอย่างนับล้านของการต่อสตริงก็ไม่ดีเช่นกัน - ฉันอยากให้ Powershell หลุดจริงๆ เพียงพอที่จะให้ฉันเปลี่ยนจากสตริงเป็นพารามิเตอร์ไดนามิก ซึ่งฉันเดาว่าขัดแย้งกับการตัดสินใจออกแบบอย่างมีสติที่ไหนสักแห่ง...
ดังนั้นทางเลือกคือกลุ่มคำสั่ง if เพื่อรองรับการเรียงสับเปลี่ยนของตัวเลือกต่างๆ...
ถ้า ($ws -และ -(ไม่ใช่ $พารามิเตอร์)) {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}
...คลื่นไส้
เว้นแต่จะมีใครมีความคิดที่ดีกว่านี้?