質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

解決済

1回答

2028閲覧

バッチからバッチへ引数の受け渡し

k-teratail

総合スコア17

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2020/06/16 12:25

編集2020/06/16 13:14

バッチからバッチへ引数で受け渡しをしたいです。

sample.batの中の記述----------------

『serverlist1』
サーバーA
サーバーB
サーバーC
└このサーバーたちのパスワードはキーボード入力で変数に格納します。

『serverlist2』
サーバーD
サーバーE
└このサーバーたちのパスワードはキーボード入力で変数に格納します。

call template.bat
call template.bat


sample.batの中からtemplate.batを呼び、サーバーA、B、Cとパスワードを引数で渡したいです。
template.batは2回呼び出して、1回目はserverlist1を、2回目はserverlist2になります。

sample.batからの渡し方と、template.batでの受け取り方を教えていただきたいです。
よろしくお願いいたします。

■追記■

サーバーA
サーバーB
サーバーC
パスワード(キーボード入力値)

上記の情報をリストみたいな形で、例えば変数serverlist1を作って格納しtemplate.batへ渡して受け取るというような形はバッチでは難しいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

call template.bat serverlist1で呼び出すと、template.batの中では%1でその引数を参照できます。

投稿2020/06/16 12:29

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k-teratail

2020/06/16 12:37

ご回答ありがとうございます! serverlist1の部分はどのように記述したらサーバーA、サーバーB、サーバーC、入力されたパスワードがsample.batからtemplate.batへ渡せるでしょうか?
otn

2020/06/16 12:52

ああ、ファイル名で渡すのではないのですね。 call template.bat サーバーA パスワード とかでしょうか。それぞれ%1と%2で参照できます。
k-teratail

2020/06/16 13:09

分かりずらくてすみません! 理想的にはサーバーA、サーバーB、サーバーC、パスワードをまとめたリストのようなものをバッチの中で作成して、それを変数serverlist1に格納みたいなことができたりしないかなと思ったのですが難しそうですね。。 ありがとうございます!
otn

2020/06/16 13:12

変数に格納する意味はあるのでしょうか? set serverlist1=サーバーA,サーバーB,サーバーC,パスワード とか?
k-teratail

2020/06/16 13:21 編集

長いバッチになるので、見た目がすっきりするのとほかの方が見てもわかりやすくしたいと思ったのですが、あまり意味ないでしょうか。。 set serverlist1=サーバーA,サーバーB,サーバーC,パスワード こんな書き方ができるのですね! 上記の書き方をした場合、call template.bat serverlist1で引数にして渡したとき、 template.batでは%1、%2、%3、%4と書くだけで参照できるのでしょうか?違う受け取り方をするのでしょうか?
otn

2020/06/16 13:33

いいえ。 call template.bat サーバーA サーバーB サーバーC パスワード とか、 set serverlist1=サーバーA サーバーB サーバーC パスワード call template.bat %serverlist1%
k-teratail

2020/06/16 13:50

set serverlist1を引数として設置するときは%serverlist1%になるんですね! 下記のような記述で問題ないでしょうか? sample.bat---------------- set serverlist1=サーバーA サーバーB サーバーC パスワード call template.bat %serverlist1% template.bat---------------- echo %1 (サーバーA) echo %2 (サーバーB) echo %3 (サーバーC) echo %4 (パスワード)
otn

2020/06/16 13:57

はい。
k-teratail

2020/06/16 14:02

半角スペースを入れて区切れるとは思いませんでした! ”サーバーA サーバーB サーバーC パスワード”これで一つの文章になって、 %1 = サーバーA サーバーB サーバーC パスワード となってしまうと思っていました。 ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問