何年もの間、私は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
」)には役立ちません。