• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.batファイル作成 set コマンドの使い方)

.batファイル作成 set コマンドの使い方

このQ&Aのポイント
  • .batファイルで、setコマンドを使用して変数を登録する方法について教えてください。
  • .batファイル内で、出力結果を別の変数にセットする方法について教えてください。
  • .batファイルで、改行やスペースを含む長い文書を変数に登録する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.1

例1. for /f "delims=" %%i in ('echo 私の名前は%name%です') do set body=%%i 上記の"for"文で、('echo 私の名前は%name%です')の実行結果(画面出力)が変数 %%i に入り、"do" 以降の "set body=%%i"が実行されます。 画面出力に半角スペースを含んでいる場合を考慮して、"delims="オプションで半角スペースを区切り文字として認識しないように指定しています。 例2. http://okwave.jp/qa/q5725995.html ↑のもう一つの質問と関連しているようなので、合わせての回答になります。 予め、テキストエディタの置換機能を利用して、テキストファイル文中の特殊文字(改行やスペース)を%文字コードの形式に置換しておきます。 例1.の"私の名前は無名です"が、bodyに既にセットされているとして、 for /f "usebackq delims=" %%i in ("C:\Documents and Settings\hogehoge\My Documents\hogehoge.txt") do set body=%body%%0d%0a%%i で、bodyに、 私の名前は無名です%0d%0a~~~~~~~~~~~(←hogehoge.txtの中身) がセットされます。 詳しくは、"for /?"でヘルプを参照してください。 また、環境変数 name、body の参照や"for"文中の変数 i 、特殊文字の文字コードを指定する"%"と、"%"がいくつも使われていますので、"%"の数にご注意ください。それぞれ、 %name% %body% %%i %0d%0a で一区切りの意味になります。

user010014
質問者

お礼

ありがとうございます! とても助かりました^^

関連するQ&A