hoge.iniに設定したパスワードを読んで、オラクルの起動・停止をするhoge.batを作っています。

hoge.iniファイルに設定したパスワード(ADMIN_PASS)に「!」を設定すると読み飛ばされてしまうのですが、何か回避策はありますでしょうか。

※こちらで調べたところ、batファイルの特殊記号は「^」を前につけるという記述を見つけたのですが、「^」をつけても結果は同じでした。

[hoge.ini]
ADMIN_USER=admin
ADMIN_PASS=admin!!!admin
DOMAIN_NAME=hoge-domain.local

[hoge.bat]
FOR /F "eol=; tokens=1,2 delims==" %%I IN (.\hoge.ini) DO (SET %%I=%%J)

echo /user=%ADMIN_USER% /pwd=%ADMIN_PASS% /domain=%DOMAIN_NAME%
pause

以上、よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2009/10/24 03:59:27
  • 終了:2009/10/27 13:07:08

回答(2件)

id:thrillseeker No.1

thrillseeker回答回数328ベストアンサー獲得回数372009/10/24 20:10:08

ポイント20pt

こちら (Windows XP Pro) では

/user=admin /pwd=admin!!!admin /domain=hoge-domain.local

と hoge.bat は問題無く動作しました。


オラクルに!入りパスワードをオプションで渡す時に問題が生じるのであれば、

hoge.bat ファイルで

/user=%ADMIN_USER% /pwd='%ADMIN_PASS%' /domain=%DOMAIN_NAME%

と ' で括ってみてはどうでしょう。

id:kuruma_neko

確かに、XPで実行すると問題なく実行されますね。実際に実行するのは、Windows2003serverなので、

環境の違いで発生しているようです。

2009/10/26 10:38:12
  • id:kuruma_neko
    Windows2003serverで実行しているサンプルが、setlocal enabledelayedexpansion
    と遅延展開をわざわざ有効にしているのが原因で、disabledelayedexpansion
    に変えたところ、「!」つきで正常に展開されました。
    何かしらの狙いがあったのだろうとは思いますが、実行できれば問題なしです。
    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません