何年もの間、私は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) {
    Write-Host "Arg: $arg";
}
結果は常に次のようになります。
C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
    
xuxu p1 p2 p3 p4」)には役立ちません。