次の方法で共有

PowerShellのバグ

Anonymous
2016-12-20T22:18:53+00:00

次のソースを実行する。

$gv=9686

$funcs = @(

{

    echo "GlobalOnRead"

    $lv = $gv

    Write-Output $lv

}

,

{

    echo "CopyOnWrite"

    $lv = $gv

    $lv += 5050 - 9686

    Write-Output $lv

}

,

{

    echo "LocalOnWrite"

    $lv = $gv

    $gv += 5050 - 9686

    Write-Output ([String]$lv + ":" + $gv)

}

)

for($i = 0; $i -lt $funcs.length; $i++)

{

    Write-Output $funcs[$i].invoke()

}

結果

GlobalOnRead

9686

CopyOnWrite

5050

LocalOnWrite

9686:-4636

本来は次になるべきでは

GlobalOnRead

9686

CopyOnWrite

5050

LocalOnWrite

9686:5050

原因はCopyOnWriteの実装に誤りがあり、ローカル変数領域を確保後に、グローバル変数をコピーしていないのではないかと思います。

**モデレーター 注記**

コミュニティ センター フォーラム に投稿されましたが、内容から判断して、こちらのフォーラムに移動しました。

家庭向け Windows | その他 | アプリ

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2016-12-21T02:33:44+00:00

© ウィンドウズスクリプトプログラマ - Windows Script Programmer 2016


Windows Powershell TechNet フォーラム へ。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2016-12-22T10:22:00+00:00

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2016-12-21T00:18:21+00:00

    次のソースを実行する。

    $gv=9686

    $funcs = @(

    {

        echo "GlobalOnRead"

        $lv = $gv

        Write-Output $lv

    }

    ,

    {

        echo "CopyOnWrite"

        $lv = $gv

        $lv += 5050 - 9686

        Write-Output $lv

    }

    ,

    {

        echo "LocalOnWrite"

        $lv = $gv

        $gv += 5050 - 9686

        Write-Output ([String]$lv + ":" + $gv)

    }

    )

    for($i = 0; $i -lt $funcs.length; $i++)

    {

        Write-Output $funcs[$i].invoke()

    }

    結果

    GlobalOnRead

    9686

    CopyOnWrite

    5050

    LocalOnWrite

    9686:-4636

    本来は次になるべきでは

    GlobalOnRead

    9686

    CopyOnWrite

    5050

    LocalOnWrite

    9686:5050

    原因はCopyOnWriteの実装に誤りがあり、ローカル変数領域を確保後に、グローバル変数をコピーしていないのではないかと思います。

    **モデレーター 注記**

    コミュニティ センター フォーラム に投稿されましたが、内容から判断して、こちらのフォーラムに移動しました。

    フィードバック Hub から フィードバックを

    フィードバック Hub

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません