none
スクリプトの変数にテキストから値を導入したい RRS feed

  • 質問

  • お世話になります。

    現在スクリプトを作成しております。

    当初スクリプトへの変数格納方法は以下のように考えておりました。

    スクリプト内

    param($a, $b, ...)

    powershellで以下を実行

    powershell ***.ps1 変数...

     

    ところが、思った以上に変数が多くなってしまい、上記の方法だと分かりにくいため、

    変数をテキスト等に保存しておき、そのファイルをスクリプト内で読み込み、変数へと

    格納する処理を行いたいと思います。

    恐らく、Get-Contentコマンドを使用するのではないかとおもうのですが、

    具体的な方法は分からず・・・。

     

    これだ!!という方法がございましたら、どうかご教示お願いいたします。

     

    2010年7月11日 13:38

回答

    • 引数を辞書にする
    • スコープを引き継ぐ

    というのはダメですかね?どちらも手軽に引数を減らすことができますが…。

    前者は、help about_hash を参照してください。後者は、help about_scope の「ドット ソース表記の使用」を参照してください。

    • 回答としてマーク 星 睦美 2010年7月16日 6:35
    2010年7月12日 3:46
  • XMLファイルを使ってこんな処理はどうでしょうか。

    <config>

      <param1>test1</param1>

      <param2>test2</param2>

    </config>

    てなファイルをtest.xmlとして用意しておき

    $xml = [xml](Get-Content .\test.xml)

    $param1 = $xml.config.param1

    $param2 = $xml.config.param2


    CSVファイルを使うなら

    param1,param2,param3

    test1,test2,test3

    てなファイルを用意しておき

    $csv = Import-Csv .\test.csv

    $param1 = $csv.param1

     

    といった感じでどうでしょう。

    • 回答としてマーク 星 睦美 2010年7月16日 6:35
    2010年7月13日 3:00

すべての返信

    • 引数を辞書にする
    • スコープを引き継ぐ

    というのはダメですかね?どちらも手軽に引数を減らすことができますが…。

    前者は、help about_hash を参照してください。後者は、help about_scope の「ドット ソース表記の使用」を参照してください。

    • 回答としてマーク 星 睦美 2010年7月16日 6:35
    2010年7月12日 3:46
  • XMLファイルを使ってこんな処理はどうでしょうか。

    <config>

      <param1>test1</param1>

      <param2>test2</param2>

    </config>

    てなファイルをtest.xmlとして用意しておき

    $xml = [xml](Get-Content .\test.xml)

    $param1 = $xml.config.param1

    $param2 = $xml.config.param2


    CSVファイルを使うなら

    param1,param2,param3

    test1,test2,test3

    てなファイルを用意しておき

    $csv = Import-Csv .\test.csv

    $param1 = $csv.param1

     

    といった感じでどうでしょう。

    • 回答としてマーク 星 睦美 2010年7月16日 6:35
    2010年7月13日 3:00
  • K.Takaoka様、minminnana207様

     

    返信が遅れてしまい、申し訳ありません。

    今回はminminnana207様が教えてくださった方法で試してみたいと思います。

    K.Takaoka様が教えてくださった方法も全然知りませんでした…。

    こちらの方法も今度試してみたいと思います。

     

    わざわざ時間を割いて回答してくださり、ありがとうございました。

    2010年7月15日 6:30