プロが教える店舗&オフィスのセキュリティ対策術

Powershellについて質問いたします。

自分で確かめた限りですが、paramとargsは同時に使用できないのでしょうか?

使用の仕方は

$args.length
param($引数1,$引数2.$引数3)
といった形で、paramの前にargs定義があると下記のエラーがでて
用語 'param' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。

逆にparamがargsの前にあると値が取れていないみたいです。(args.lengthの値が0)

Paramでlengthのようなことができればいいのですが。

A 回答 (2件)

自信なし。

(あんまPowerShell
param($引数1,$引数2.$引数3) ←第二引数と第三引数の間はピリオドでいいの?カンマじゃなくて。試さないけど。
#関数型言語のSchemeには、残りの引数を全部リストに突っ込んだものが代入されるとかある。

で。
paramというコマンドやらがあるのではなく、単に「関数」の構文の一部なだけなんじゃないかと思った。
http://technet.microsoft.com/en-us/library/dd347 …

for ($i = 0;$i < 5;i++)
System.Console.WriteLine("Hello World");
{
}

みたいに埋め込まないのと一緒で。

#paramキーワードは省略可能。
=====================
>逆にparamがargsの前にあると値が取れていないみたいです。(args.lengthの値が0)

それは多分、paramで指定するのが、「名前付きパラメーター(Named Parameters,PowerShell ISEのヘルプの和訳を利用)」であって、

$argsによって取得できるのが、「位置指定パラメーター(Positional Parameters):PowerShellのヘルプによると【名前のない引数】」だからじゃないかなーと予測している。

>Paramでlengthのようなことができればいいのですが。
これができるかどうかは確認してない。
    • good
    • 0

訂正:(あんまPowerShell使ってない)

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!