Selama bertahun-tahun, saya telah menggunakan cmd/DOS/Windowsshell dan memberikan argumen baris perintah ke file batch. Sebagai contoh, saya memiliki sebuah file, zuzu.batdan di dalamnya, akses saya %1, %2, dll Sekarang, saya ingin melakukan hal yang sama ketika saya sebut PowerShellnaskah when I am in a Cmd.exe shell. Saya memiliki skrip, xuxu.ps1(dan saya telah menambahkan PS1 ke variabel PATHEXT saya dan file PS1 terkait dengan PowerShell). Tapi apa pun yang saya lakukan, saya sepertinya tidak bisa mendapatkan apa pun dari $argsvariabel. Itu selalu memiliki panjang 0.
Jika saya berada di PowerShellshell, bukannya cmd.exe, itu berfungsi (tentu saja). Tapi saya belum cukup nyaman untuk hidup di lingkungan PowerShell secara penuh. Saya tidak ingin mengetik powershell.exe -command xuxu.ps1 p1 p2 p3 p4. Saya ingin mengetik xuxu p1 p2 p3 p4.
Apakah ini mungkin dan jika iya, bagaimana?
Sampel yang saya tidak bisa mulai bekerja itu sepele, foo.ps1:
Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
Write-Host "Arg: $arg";
}
Hasilnya selalu seperti ini:
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
xuxu p1 p2 p3 p4").