人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Windows2003で、.batファイルから.vbsファイルを呼んだ場合、戻り値に文字列を返したり、複数の戻り値を返すといった方法はないでしょうか。

WScript.Quit()では、整数値しか返せず、文字列をどのように取得するのか悩んでます。

やりたいこと
?.iniにエンコードしたパスワードを記述
?.batから.iniを読み込む
?.batからデコード処理を行うvbs呼ぶ
?.batで環境変数にデコードしたパスワードを設定

.bat
FOR /F "eol=; tokens=1,2 delims==" %%I IN (.\password.ini) DO (
SET %%I=%%J
cscript //B //NoLogo .\precmd.vbs %%J %%DECODEPASSWORD
SET %%I=%%J
)

.vbs
Function PasswordDecode(ByVal EncodePassword,ByRef DecodePassword)

ret = PasswordDecode(objArgs(0),objArgs(1))
WScript.Quit

●質問者: kuruma_neko
●カテゴリ:コンピュータ
✍キーワード:password SET VBS エンコード デコード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● dev_zer0
●35ポイント

> 戻り値に文字列を返したり、複数の戻り値を返すといった方法はないでしょうか。

下記のURLの

「■かっこ内をコマンドとして実行し、その実行結果を解析する」

を参考にしてください

http://www.atmarkit.co.jp/fwin2k/operation/command008/command02....


vbs側では標準出力(Wscript.StdOut)に出力するようにすれば上手くいくはずです。


2 ● pinkymonk
●35ポイント

この辺は参考になりませんか。

echoして終了させます。

http://oshiete1.goo.ne.jp/qa4369715.html

以下転記-

[VBS側]

'環境変数に格納したい値をEchoして終了

WScript.Echo kekka

[バッチ側]

for /f "usebackq tokens=*" %%i IN (`call cscript //nologo <vbsフルパス>?hoge.vbs`) DO @set vbskekka=%%i

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ