• ベストアンサー

バッチファイルで引数を二つ指定した場合の処理

始めまして。今家でサーバーを立ち上げ、作業をスムーズにするためにバッチを作成しているのですが行き詰ったので助言いただけるとありがたいです。 今のバッチの中身は mkdir %1\%2 という風になっております。 コマンドプロンプトで引数を二つとも指定してやると正常に動きます。 ですがその手間を低減したいので、バッチへのショートカットを C:\Documents and Settings\Administrator\SendTo に入れ、右クリック→送るで使えるようにしました。 しかし、その場合、フォルダ上での右クリック→送るでは そのディレクトリが引数%1に当てはまるだけで %2は空白として処理されますよね? この%2が空白であれば(判定はifでするつもりです)、プロンプトの実行を一時止め、%2の値を入力を促す、というような流れになってほしいのですが可能でしょうか? まだまだ勉強不足で申し訳ないのですが、回答いただけると幸いです。また、説明不足な点がありましたら答えていきたいと思いますので、ご協力いただけるとありがたいです。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

ファイルを複数選択してまとめて「送る」と、それぞれ%1 %2 ・・・となりますが、一つしか選択しないとお書きの通り %2 は空白となります。 set A1=%1 set A2=%2 :loop if "%~2"=="" set /p A2="追加の引数を入力してください" if not defined A2 goto loop echo "引数1" = "%A1%" echo "引数2" = "%A2%"

hotasora
質問者

お礼

回答ありがとうございます。 無知な二人で作成していて、ifの部分は相手にまかせっきりだったので その部分の記述をくださって、自分でもテストが出来、勉強できました。 ありがとうございました。

その他の回答 (1)

  • furaijin
  • ベストアンサー率54% (12/22)
回答No.1

>プロンプトの実行を一時止め、%2の値を入力を促す、というような流れになってほしいのですが可能でしょうか? set /P aaa="文字列を入力してください:" というように記述すれば希望しているようなことができると思います。 その後aaaという変数(%aaa%で参照可能)に入力された文字列が格納されます。 「文字列を入力してください:」というメッセージはaaaには入りません。

hotasora
質問者

お礼

回答ありがとうございました。 setというものがあったのですね!勉強になりました。 いろいろ自分で触っているうちに >(%aaa%で参照可能) の部分に躓いたので、先回りの説明助かりました。

関連するQ&A