Selama bertahun-tahun, saya telah menggunakan cmd/DOS/Windows
shell dan memberikan argumen baris perintah ke file batch. Sebagai contoh, saya memiliki sebuah file, zuzu.bat
dan di dalamnya, akses saya %1
, %2
, dll Sekarang, saya ingin melakukan hal yang sama ketika saya sebut PowerShell
naskah 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 $args
variabel. Itu selalu memiliki panjang 0.
Jika saya berada di PowerShell
shell, 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
").