474) テキストファイルの内容から環境変数の設定 TANZO 2004/05/20(木) 20:56 |
|
|
|
はじめまして、TANZOと申します。 表題のとおり、テキストファイルの内容を環境変数に登録しようと思っているのですが、 なかなかうまくいきません。環境は、Win98se,WinMe,WinNT4,Win2000,WinXPです。 何をしたいかと申しますと、VBSによって標準出力に出された文字列(WSHのバージョン等) を、バッチファイル内で変数に入れたいと考えています。 NT,2000、XPでは、 for /F "tokens=*" %%a in ('cscript verchk.vbs') do set VBSVER=%%a **********verchk.vbsの内容*********** Wscript.Echo Wscript.Version (これでVBSのバージョンが返ります。) ************************************* とやることで、変数VBSVERにVBSのバージョン番号が入るのですが、 98SEでは、(Meはまだ用意できていないので未確認ですが。。。) どうも上記のような書式が認められていないようなので、 どうしたものかなと思い、VBSの結果をいったんファイルに書き出して、それを読み込もうと考えました。 というわけで、上記VBSをバッチファイルから cscript verchk.vbs > kekka.txt というような具合でファイルに書き出すと、 ******************kekka.txt****************** Microsoft (R) Windows Scripting Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved 5.6 ********************************************* というような感じで5行返ってきました。 4行目の5.6と言う数字を変数に入れたいと思うのですが、 何かいい方法はありますでしょうか? また、これを応用して、WSHのバージョン番号だけでなく、 特定のソフトのインストール先等の情報も取得したいと思っています。 (今のところ必要とする結果は4行目に限られているようです。) VBSからの標準出力をそのまま受けられるの一番よいのですが。。。 いろいろと検索してみましたがなかなか解決策が見つからず、質問させていただきました。 識者の皆様、ご教授よろしくお願いします。 |
|
475) Re:テキストファイルの内容から環境変数の設定 oo 2004/05/20(木) 21:54 |
|
|
|
>何をしたいかと申しますと、VBSによって標準出力に出された文字列(WSHのバージョン等) >を、バッチファイル内で変数に入れたいと考えています。 > >NT,2000、XPでは、 > >for /F "tokens=*" %%a in ('cscript verchk.vbs') do set VBSVER=%%a > >**********verchk.vbsの内容*********** >Wscript.Echo Wscript.Version >(これでVBSのバージョンが返ります。) >************************************* > >とやることで、変数VBSVERにVBSのバージョン番号が入るのですが、 >98SEでは、(Meはまだ用意できていないので未確認ですが。。。) >どうも上記のような書式が認められていないようなので、 >どうしたものかなと思い、VBSの結果をいったんファイルに書き出して、それを読み込もうと考えました。 >というわけで、上記VBSをバッチファイルから > >cscript verchk.vbs > kekka.txt > >というような具合でファイルに書き出すと、 >******************kekka.txt****************** >Microsoft (R) Windows Scripting Host Version 5.6 >Copyright (C) Microsoft Corporation 1996-2001. All rights reserved > >5.6 > >********************************************* > >というような感じで5行返ってきました。 >4行目の5.6と言う数字を変数に入れたいと思うのですが、 >何かいい方法はありますでしょうか? >また、これを応用して、WSHのバージョン番号だけでなく、 >特定のソフトのインストール先等の情報も取得したいと思っています。 >(今のところ必要とする結果は4行目に限られているようです。) > >VBSからの標準出力をそのまま受けられるの一番よいのですが。。。 > >いろいろと検索してみましたがなかなか解決策が見つからず、質問させていただきました。 > >識者の皆様、ご教授よろしくお願いします。 cscriptコマンドで、//logo がデフォルトだから起動メッセージが出力されるんでしょう。cscriptとだけ入力するとヘルプが表示されると思いますが、 cscript //nologo verchk.vbs で表示されなくなります。 また、結果をファイルに入れても、win9x系ではファイルからの読み取りも標準機能では出来ませんが、 Wscript.Echo "set VBSVER=" & Wscript.Version に修正すれば、 cscript //nologo verchk.vbs > kekka.bat call kekka.bat で、VBSVERにバージョンがセットできます。 |
|
476) Re2:テキストファイルの内容から環境変数の設定 TANZO 2004/05/21(金) 00:34 |
|
|
|
oo様、ご教授ありがとうございます。 >cscriptコマンドで、//logo がデフォルトだから起動メッセージが出力されるんでしょう。cscriptとだけ入力するとヘルプが表示されると思いますが、 >cscript //nologo verchk.vbs >で表示されなくなります。 ありがとうございます。cscriptコマンドもさっき覚えたところだったので、 うれしくて何の疑いもなくそのまま使っていました。 これからはもう少し冷静に観察して行こうと思います。 >また、結果をファイルに入れても、win9x系ではファイルからの読み取りも標準機能では出来ませんが、 やはりそうなのですが、実はファイルの読み込みぐらいはすぐにできるだろうと たかをくくっていたのですが、完全に裏目に出た気分です。 >Wscript.Echo "set VBSVER=" & Wscript.Version >に修正すれば、 >cscript //nologo verchk.vbs > kekka.bat >call kekka.bat >で、VBSVERにバージョンがセットできます。 正直、目からうろこです。 VBSにset文を書かせてそれをbatファイルにし、実行するなんて 夢にも思いつきませんでした。 これで1日半ぐらい悩んでいたのでかなりうれしいです。 本当にどうもありがとうございました。 これからも精進してまいります。。。 |
|
478) Re3:テキストファイルの内容から環境変数の設定 oo 2004/05/22(土) 20:25 |
|
|
|
>正直、目からうろこです。 >VBSにset文を書かせてそれをbatファイルにし、実行するなんて >夢にも思いつきませんでした。 Win9x系はNT,2000,XPのようにコマンドの処理結果を扱うことが出来ないので、 何かの時にはひたすら一時ファイルとか、動的に作ったBATファイルとかを作ってやるのが技のようです。 (今時はVBS+WSHを憶えたらそれを使うほうが楽でしょうね) 私がすごいと思った例: ECHO @ECHO off>ZZZZZZZ1.BAT ECHO SET A=%%3>>ZZZZZZZ1.BAT ECHO SET B=%%4>>ZZZZZZZ1.BAT DIR | FIND "ZZZZZZZ1 BAT" >ZZZZZZZ2.BAT CALL ZZZZZZZ2.BAT DEL ZZZZZZZ1.BAT DEL ZZZZZZZ2.BAT ECHO [%A%] [%B%] |