• ベストアンサー

バッチファイルへの変数のキー入力、変数名を含むファイルへの出力

とあるヘッダーの作成のため、キー入力した値で、変数名を含む名前のテキストに変数の入ったファイルを書き出そうと思うのですが、どなたかアドバイスいただけますでしょうか。 いまのところ次のような感じで、%num%という変数に数字を入れるようにしたいのですが。 SET/P %num% = 数字を入力してください:  echo right: %num% >> header%num%.txt echo leftt: %num% >> header%num%.txt また、バッチファイルのサンプルが多く載っている書籍等の紹介でもかまいませんどうぞよろしくお願いします。

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

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

アドバイスというか・・・ > SET/P %num% = 数字を入力してください:  これ変では? > SET/P num= 数字を入力してください:  なのでは? #代入時に「%~%」は不要。変数名の後の=との間に空白不要。

latifolius
質問者

お礼

ありがとうございます。 そこでしたか! 大変助かりました。

その他の回答 (1)

  • j-mika
  • ベストアンサー率46% (15/32)
回答No.2

問題は解決のようなので。 書籍よりここが便利かも。です。 http://www.fpcu.jp/dosvcmd/

latifolius
質問者

お礼

ありがとうございます。 コマンドプロンプトについては、ネット上でもまとまったコンテンツがうまく探せずさまよっていたので大変助かります。

関連するQ&A

  • DOSのバッチで、変数中のファイル名を取り出すには

    DOSのバッチの初心者です。 $FILEという変数に、 C:\Documents and Settings\Administrator\My Documents\okwave.txt のようにファイル名がフルパスで入ってくるとします。このファイル名だけ(okwave.txt)を別の変数に入れたいのですが、うまくいきません。 set f=%$FILE% set g=%%~nf echo %g% 上のように書いてみたのですが、変数gは%~nfという値が入ってしまいます。どう直せばよいでしょうか。

  • バッチファイルで変数の内容変更

    以下のバッチファイルで,10回目のループで,ファイル名を入力している変数を 「out.txt」と変更したいのですが,変更前の「in.txt」と 出力されてしまいます。 どのように対処すれば宜しいでしょうか? よろしくお願いします。 @echo off set FLN=in.txt for /L %%N in ( 1 , 1 , 10 ) do ( echo %%N if "%%N" equ "10" ( echo 変更します set FLN= set FLN=out.txt ) echo %FLN% ) @echo on

  • バッチファイルについて

    バッチファイルについて バッチファイルの勉強をしておりますが、以下のバッチで 分からない箇所があります。 @echo off copy C:\bin\set.txt set.txt | find /v "コピー" echo ユーザー名を入力してください echo 入力後、Ctrlキーを押しながらZキーを押した後、Enterキー copy con inp.txt | find /v "コピー" copy set.txt+inp.txt setinp.bat | find "○○" call setinp.bat echo ユーザー名は%INP%と入力されました! del setinp.bat set.txt inp.txt <<不明箇所>> まず、C:\bin\set.txt』は set INP= とだけ書いたファイルです。 copy C:\bin\set.txt set.txt | find /v "コピー" ですが、|find /v"コピー"はなんのためにやっているのでしょうか?? find /vを調べてみると、指定した文字列を含まない行の内容をすべて画面に表示します。 と記載されていますが・・・・このバッチでは一体なぜ最初にいるのでしょう?? copy con inp.txt | find /v "コピー" ですが、コンソールから入力させた文字列をinp.txtに保存しているらしいのですが、 そのあとに、また、|find /v"コピー"がでてきますが、なぜでしょう??なにを したいのでしょう?? さらにまた、copy set.txt+inp.txt setinp.bat | find "○○"が出てきますが、 ここでなぜまた意味不明な、|find"○○"がでてくるのでしょう?? さらにさらに、バッチを実行してみると、set.txtの中身にはコンソールから 入力した文字は何も記載されていない、そして、inp.txtやsetinp.txtという テキストファイルも、どのフォルダにも出来ていません。 最後の行のdel setinp.bat set.txt inp.txtを消して実行してみても同じです。 なぜでしょう?? このバッチの動き、例としての意図が全く分かりません。。。。 この例題が悪すぎるのか、私の頭がわるすぎるのか・・・・ ちなみに、上記バッチは、http://www.geocities.co.jp/SiliconValley-SanJose/1227/batinput.html のサイトのものです。 どなたかご教授願います。。。一週間悩みましたが、まったく理解できない状態です。。。

  • バッチファイルの変数引継ぎについて

    行き詰ってしまったので、どなたか知恵を授けていただければと思います。 現在、あるソフトウェアの「バッチモード」という機能を使用したバッチを作成していて、構文が > sdcmd batch ***.txt 上記のようにコマンドを羅列したテキストファイルを指定した実行コマンドになります。 sdcmd以降はソフト指定のコマンド以外は使用できず、変数設定ができない為に変数設定とログ保存を兼ねて上記コマンドを記載したバッチを > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > call aaa.bat %* >> aaa.log 2>&1 という内容の呼び出しバッチを作成たのですが、テキストファイル内の変数が代入されずに 実行されてしまいます。 cmd上から直接 > setlocal EnableDelayedExpansion > set ○=△△△ > set ■=◇◇◇ > sdcmd batch ***.txt >> aaa.log 2>&1 を実行しても変数の代入は行われませんでした。 cmd上で変数とテキストファイル内のコマンドを手動実行すれば変数は解決できます。 設定した変数を、テキストファイル内の変数値に代入する方法はあるでしょうか。

  • ファイルからの入力方法について

    例えば、data.txt というファイルから数字を一つずつ変数に入力させたいです。 data.txtの内容は、 1 1 2 3 5 8 13 21 34 55 89 144 … のような並びで文字が書かれていて、それを int num[1000]; のような変数配列に数字として一つずつ順番に入力させたいです。 ご教授ください。

  • バッチファイルで

    バッチファイルでファイル名をキーボードで変更するのは どうすればよいのでしょうか 例:A.txtと言うファイル名をキーボードから2006data.txtにしたいのですが REN C:\A.txt 2006data.txt はわかるのですが2006.txtを変数にして その変数をキーボードで入力する方法(今更バッチファイルでもないのですが?) よろしくお願いします。

  • バッチファイル set /p による条件分岐について質問

    vistaを使っています。 set /p でキー入力を受け付け処理を分岐させるファイルを作っているのですが・・・ 例外の条件を定義する方法がわかりません。 詳細は下をご覧になってください。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @echo off rem ##################################### rem 分岐プログラムサンプルです! rem ##################################### :start cls echo ■■■分岐プログラムサンプル■■■ echo 【1】test1へ! echo 【2】test2へ! echo 【3】test3へ! echo 【4】メニューを終了します! echo ■■■■■■■■■■■■■■■■■ set /p num="実行したいメニューの数字キーを入力してください⇒" if "%num%"=="1" goto A if "%num%"=="2" goto B if "%num%"=="3" goto C if "%num%"=="4" goto end . . . <省略> ↑のように入力された数字によって、処理が変わるようになっているのですが、ここで"上記以外の条件"を定義するにはどのように記述すればよいのかお教えいただけませんでしょうか。

  • バッチファイルの変数について

    以下のバッチファイルを作成して実行したのですが、PATH_NAMEの変数が 設定されず、ファイルコピーがされません。 どのように、コードを記載すれば良いのでしょうか。 ご教授願います。 REM コピーするファイル数を設定 SET /a FILE_NUM = 2 REM コピー元のパスを設定 SET PATH_P1=C:\Copy01.txt SET PATH_P2=C:\SAMPLE\Copy02.txt REM 上記で設定したファイルを順番にC:\TEST\へコピーする SET /a N=1 :LOOP SET /p PATH_NAME = PATH_P%N% copy %PATH_NAME% C:\TEST\ if "%N%"== "FILE_NUM " (goto EXIT) SET /a N=N+1 goto LOOP :EXIT

  • バッチでテキストを出力したときに改行ができない

    バッチファイルでテキストを出力するのですが、改行ができません echo 一行目 > C:\temp.txt ? echo 二行目 >> C:\temp.txt として結果C:\temp.txtファイル内に  一行目  二行目 ではなく  一行目  二行目 としたいのですが、、 ?にはいるものがわかりません。 echo " " >> C:\temp.txt としても""が入ってしまうし echo   >> C:\temp.txt (全角スペース)を入れても"ECHO は <ON> です。"とメッセージが出てしまいます。 わかる方お願い致します。

  • バッチファイルで改行の出力

    バッチファイルで,改行のみをファイルに追記したいのですがどのようにすればできますか? echo >> output.txt とすると「ECHO は <OFF> です。」と出力されてしまいます. 全角を出力すれば見た目は同じですが,純粋に改行のみの出力方法をお願いします.

専門家に質問してみよう