none
コマンドプロンプトの変数の扱いについて RRS feed

  • 質問

  • 以下のファイルを作って実行しましたが、エラーになってしまいます。

    [test.bat] 管理者として実行

    if %PROCESSOR_ARCHITECTURE% == x86 (
    set bit1 = 32bit
    set bit2 = 86
    )
    else (
    set bit1 = 64bit
    set bit2 = 64
    )
    call test\%bit1%\test%bit2%.msu

    // 実行結果

    call test\\test.msu

    指定されたパスが見つかりません。

    変数に設定したはずが中身が無いのです。

    何が原因かわかりません。

    よろしくお願いします。

    2016年9月16日 7:48

回答

  • バッチファイルのSETコマンドは、=の前後にスペースを入れると正しく設定されないと思います。

    set bit1 = 32bit


    set bit1=32bit
    とスペースを除外して試してみてください。


    • 編集済み M.Hanafusa 2016年9月16日 8:07
    • 回答の候補に設定 佐伯玲 2016年9月20日 1:22
    • 回答としてマーク 佐伯玲 2016年9月21日 6:05
    2016年9月16日 8:07

すべての返信

  • バッチファイルのSETコマンドは、=の前後にスペースを入れると正しく設定されないと思います。

    set bit1 = 32bit


    set bit1=32bit
    とスペースを除外して試してみてください。


    • 編集済み M.Hanafusa 2016年9月16日 8:07
    • 回答の候補に設定 佐伯玲 2016年9月20日 1:22
    • 回答としてマーク 佐伯玲 2016年9月21日 6:05
    2016年9月16日 8:07
  • 正常に動きました。

    感謝いたします。ありがとうございました。

    2016年9月21日 2:29
  • 正しく設定されない

    のではなく、そのとおりに正しく設定されます。つまり、

    set bit1 = 32bit
    なら、「bit1 」に「 32bit」が設定されます。空白込みの変数に空白込みの値が設定されます。

    2016年9月23日 11:14