วิธีส่งอาร์กิวเมนต์บรรทัดคำสั่งไปยังไฟล์ PowerShell ps1
เป็นเวลาหลายปีแล้วที่ฉันใช้cmd/DOS/Windowsเชลล์และส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่งไปยังไฟล์แบตช์ ตัวอย่างเช่นผมมีไฟล์zuzu.batและในนั้นเข้าถึงฉัน%1, %2ฯลฯ ตอนนี้ผมต้องการที่จะทำเช่นเดียวกันเมื่อผมเรียกสคริปต์PowerShell when I am in a Cmd.exe shellฉันมีสคริปต์xuxu.ps1(และฉันได้เพิ่ม PS1 ลงในตัวแปร PATHEXT และไฟล์ PS1 ที่เชื่อมโยงกับ PowerShell) แต่ไม่ว่าฉันจะทำยังไงฉันก็ไม่สามารถรับอะไรจาก$argsตัวแปรได้เลย มันมีความยาวเป็น 0 เสมอ ถ้าฉันอยู่ในPowerShellเปลือกหอยแทนที่จะcmd.exeได้ผล (แน่นอน) แต่ฉันยังไม่สบายใจพอที่จะอยู่ในสภาพแวดล้อม PowerShell แบบเต็มเวลา powershell.exe -command xuxu.ps1 p1 p2 p3 p4ฉันไม่ต้องการที่จะพิมพ์ xuxu p1 p2 p3 p4ฉันต้องการที่จะพิมพ์ เป็นไปได้หรือไม่และถ้าเป็นเช่นนั้นได้อย่างไร ตัวอย่างที่ฉันไม่สามารถไปทำงานได้นั้นไม่สำคัญ foo.ps1: Write-Host "Num Args:" $args.Length; foreach ($arg in $args) …