バッチファイルを呼び出してセットする方法を用いてきたのですが、各マシンにより既に使用されている環境変数の領域がまちまちなため(?)、うまくいったり行かなかったりします。

VBで環境変数をセットする方法はないでしょうか?
どなたか教えて下さい。よろしくお願いします。

A 回答 (2件)

SHELL=C:\WINDOWS\COMMAN.COM /E:512


CONFIG.SYSに上記のような設定をしてださい。
これで領域不足はなくなるはずです。
環境変数の設定はAUTOEXEC.BATで設定して下さい。
/E:512という所が環境変数の割当てサイズになります。
    • good
    • 0
この回答へのお礼

おかげさまで、環境変数の領域不足のメッセージは回避できるようになりました。
ありがとうございます。

「パラメータが多すぎます。」というメッセージは、バッチファイルの書き方で回避できました。バッチファイルは、NT系と98系では多少書き方が異なるようで、どっちかでうまくいってももう片方ではうまくいかなかったりするので、苦労しました。

winapi関連で、環境変数を設定する方法を調べてみましたが、取得はできるけど、設定はなかなかうまくいきません(SetEnvironmentVariable関数)。バッチファイルを実行するのではなくVBから直接起動できればきれいなのですが、無理なのかなぁ…と思っています。

お礼日時:2001/04/24 17:46

うーん、何をしたいのかがいまいちよくわからないんですが。


自作のプログラムを起動するんですか?
そのプログラム中で環境変数を使っています?

この回答への補足

とある製品の部品を使用しているのですが、その仕様でいくつかの情報を環境変数であらかじめ設定してから実行して下さい…という手順となっています。

そのため、現在は、
(1)必要な環境変数の設定とプログラムをキックするバッチファイルを書き出す。
(2)書き出したバッチファイルを実行する。
手順になっています。

しかし、その際に環境変数の設定時に
「環境変数の領域が足らない」
「パラメータが多すぎます」
のエラーで弾かれてしまうことがあります(端末の環境によって)。

なので、環境変数の設定からプログラムの実行までをVBでできれば回避が可能なのかな?と考えました。

言葉足らずの面、申し訳ありませんでした。
よろしくお願いします。

補足日時:2001/04/24 14:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q JDKのPATHの設定(環境変数)について 

 JDKのPATHの設定(環境変数)について 

 JDKをインストールした時に「コンントロールパネル>システム>詳細設定>
環境変数から、JDKへのPATHを設定してやりますが、
ある本には、PATHを選択して編集して表示される内容の一番最後にJDKのPATHを
追加するように書いている本があります。

 しかし、別の本では、TEMP>編集を選択して表示される内容の一番最後に
JDKのPATHを追加するように書いている本があります。

 また別の本には新しく「Java_HOME」という変数を作成してそこにPATHを追加
するとも書いています。

 これはどのように使い分けるのでしょうか、またどのような意味があるので
しょうか。

 また、環境変数のダイヤログには「ユーザーの環境変数」と「システム環境変数」
という項目がありますが、これはどのような違いがあって、どのように使い分ける
のでしょうか。

Aベストアンサー

PATHへの追加と、JAVA_HOMEの設定の両方を行っておいてください。
OSが実行形式ファイルを探すのに参照するのがPATHです。

JAVA_HOMEの方は、Javaで作られたプログラムが参照している場合があるので設定しておく方が良い、程度ですが、貴方が自分でJavaプログラムを作成するだけとかなら、設定してなくても特に問題はありません。

が、Javaの開発にツール類を使用するのなら、それらのツール類が参照している場合がありますので。

Qバッチファイルの変数をパラメーター化

お世話様です。

WindowsXP環境に下記バッチファイルがあります。
バッチコード内は以下の通りです。

------------------------------------------------
set TARGET_FILE=test.txt
------------------------------------------------

この【TARGET_FILE】という変数内に格納されている【test.txt】という値を
パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。
という事は可能でしょうか?

上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。
VBSコード内は以下の通りです。

------------------------------------------------
Option Explicit

Dim FILE

FILE = ○○○←ここに上記バッチ内の【TARGET_FILE】変数の値を受け取る。

MsgBox FILE
------------------------------------------------

各バッチは上記VBSで実行したいのです。
Msgbox程度の処理は当然バッチでも可能ですが、何個もVBSを作成するのは厳しいので、
パラメーターが可能であれば、このVBS1個で済みます。

ご存知の方がおりましたら、お知恵を拝借しても宜しいでしょうか?

何卒宜しくお願い致します。

お世話様です。

WindowsXP環境に下記バッチファイルがあります。
バッチコード内は以下の通りです。

------------------------------------------------
set TARGET_FILE=test.txt
------------------------------------------------

この【TARGET_FILE】という変数内に格納されている【test.txt】という値を
パラメーターとしてあるVBS内の変数Aがそれを受け取って処理をする・・・。
という事は可能でしょうか?

上記バッチは数種類あり、【TARGET_FILE】変数内の値がそれぞれ違います。
VBS...続きを読む

Aベストアンサー

WScript.Shell オブジェクトのExpandEnvironmentStringsをつかえば、VBS内で環境変数の値を取得できます。

------------------------------------------------
Option Explicit

Dim FILE
Dim wshShell

Set wshShell = WScript.CreateObject("WScript.Shell")
FILE = wshShell.ExpandEnvironmentStrings("%TARGET_FILE%")

MsgBox FILE
------------------------------------------------

Q環境変数PATH??

C初心者です。
C++Compilerをインストールした後に、環境変数PATHを設定しますが、この環境変数PATHはいったいどういう意味でしょうか??

Aベストアンサー

すみません。。。わたしの説明が下手なんでしょうね^^;
参考までに、以下のURLをご覧になってみてください。

http://pocketstudio.jp/linux/?%A5%D1%A5%B9(PATH)%A4%CE%B3%CE%C7%A7%A4%C8%C0%DF%C4%EA%CA%FD%CB%A1%A4%CF%A1%A9

QADOレコードセット操作(Forループ用の変数)

CSVファイルからADO接続でレコードセットを取得し、
順次出力していきたいと考えています。
CSVファイルにはフィールド名が含まれていないので
schema.iniで
 Col1=F1 char
 Col2=F2 char
 Col3=F3 char
 Col4=F4 char
 Col5=F5 char
 Col6=F6 char・・・
という要領で名前を付けています。

現在、
myData(1)=recordset![F1]
myData(2)=recordset![F2]
myData(3)=recordset![F3]・・・

という形でフィールド数と同じ行数、レコードを取り出すコードを記述していますが、これを

 For i = 1 to 6
  myData(i)=recordset!F[i]
 Next i

・・・のような形でForループにできないかと試行錯誤しています。

うまい具合にフィールド名の連番数字を使うには、どのようにしたら
よいものでしょうか?

CSVファイルからADO接続でレコードセットを取得し、
順次出力していきたいと考えています。
CSVファイルにはフィールド名が含まれていないので
schema.iniで
 Col1=F1 char
 Col2=F2 char
 Col3=F3 char
 Col4=F4 char
 Col5=F5 char
 Col6=F6 char・・・
という要領で名前を付けています。

現在、
myData(1)=recordset![F1]
myData(2)=recordset![F2]
myData(3)=recordset![F3]・・・

という形でフィールド数と同じ行数、レコードを取り出すコードを記述していますが、これを
...続きを読む

Aベストアンサー

今現在、検証はできませんが下記でできませんか。
Dim strFIELD As String

For i = 1 to 6
 strFIELD = "F" & i
 myData(i)=recordset(strFIELD)
Next i

Qjavaの環境変数PATHについてご教授ください。

javaの環境変数PATHについてご教授ください。

現状、"c:\"でjavacコマンドを入力すると、「内部コマンドまたは外部コマンド~」
と警告が表示されます。

環境変数については、
・ユーザ環境変数にJAVA_HOMEを定義し、「C:\Program Files\Java\jdk1.6.0_20」を設定しています。
・システム環境変数のPATHに、「%JAVA_HOME%\bin;%SystemRoot%;%SystemRoot%\System32;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\」を設定しております。

OSは、vistaです。

【補足】
・C:\Program Files\Java\jdk1.6.0_20\binにディレクトリチェンジした場合、javacは実行できる。javac.exeはあります。

Aベストアンサー

で、コマンド プロンプトを開いて、
set pathとして表示される中に、
C:\Program Files\Java\jdk1.6.0_20\bin
は表示されますか?

表示されない場合、
ユーザ環境変数のPATHに
%JAVA_HOME%\bin
を設定したらどうなりますか?

# システム環境変数にJAVA_HOMEを設定、でいいような気もしますが…

Qデータセットのある値を変数に格納するには?

いつもお世話になります。
VB.NET + ACCESS2000です。

今個々の入出庫のデータを個別に入力表に入れています。
出庫の入力をしたときに、赤残にならないようなチェックを
かけたいと考えており、品質項目で絞り込んだ数値データを
別のデータセットに入れてDatagridに一覧表示させています。
出庫数量を入力して更新するときに、出庫後の在庫がマイナス
にならないように予めDatagridに表示させた数値データのある
列の値(ロット別の合計値)を変数に格納して出庫予定量と
比較し、マイナスの場合は警告メッセージを出すようにすること
を考えています。
Datagridのあるデータを変数に取り込むようにするにはどうしたら
いいのでしょうか?
またこの考え方は間違っているのでしょうか?

ご教示よろしくお願いいたします。

Aベストアンサー

 自分はたいてい DataGridView(VB2005)を使いますが、たぶん同じだと思います。

 Dim Value as Integer = DataGrid.Rows(i).Cells(j).Value

または、

 Dim Value as Integer = DataGrid.Rows(i).Cells("列名").Value

で値は取れます。ここで i,j は 0 から始まる Index で、行または列の Count-1 の範囲です。

>この考え方は間違っている?
 DataSet の色々な機能を組み合わせてやれ、という意見もあるでしょうが、細かい制御に対しては、自分はこういうベタな方法は好きです。

Qjavaのpath環境変数がうまくできません

path環境変数がなかなか設定できません。

『システム変数の編集』で
どうも設定を間違っているらしく、
C:\j2re1.4.2\binを追加するのに
前にあったはずの、C:\WINDOWS~~~
を削除してしまって、なんて入れれば環境変数が
うまくできるかわからなくなってしまいました。
誰かお願いします。

Aベストアンサー

インターネットで探してみましたけど、見つかりませんでした。
この質問は、「Java環境変数を設定するときに本来の環境変数を消してしまった」という内容ですよね?
でしたら、Windows系OSで質問されたほうがいいと思います。

PATHは間違った設定にしてしまうと起動できなるとか聞いたんですけど、大丈夫ですか?

QLAN内接続マシン数及びIP、マシン名の表示について

VB.NET、C言語を使用してLAN内に接続しているマシン数とそのマシンのコンピュータ名、IPを取得するプログラムを各言語で開発したいのですが参考になるものが無く困っています。
参考になるURLや方法を教えていただきたいです。
開発環境はVBはWin XPでVisual Studio 2003でC言語は gccでやろうと思っています。

Aベストアンサー

VB.NET ですが単体取得からリスト取得までたくさんありますよ。
自分仕様に合うように変更していったらいいと思います。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=vb.net+ip+%E3%83%9B%E3%82%B9%E3%83%88%E5%90%8D+%E4%B8%80%E8%A6%A7&num=50

QJavaSDKの環境変数のPATHについて

初めまして。Javaについてですが、今使っているパソコンにJavaのSDK(1.6.0_27)をインストールしたのですが、環境変数のPATHの書き換えで何て書けば良いのか分かりません。誰でも良いので教えて下さい。それとjavacでHello classを作ろうとしても出来ません。それは環境変数のPATHを書き換えていないからですか?教えて下さい。よろしくお願いします。

Aベストアンサー

OS は Windows だと仮定します。

[<JDKをインストールしたフォルダ>\bin]を元のPATHの設定値の後ろに;で区切って付け加えます。
(既存のPATHの内容を削除しない様に気を付けて下さい)

例) JDKをインストールしたフォルダが C:\Java\jdk1.6.0_27 だとして

 %SYSTEMROOT%\system32;%SYSTEMROOT%;・・・・・;C:\Java\jdk1.6.0_27\bin


Oracle のページも参考になるでしょう。
http://java.sun.com/javase/ja/6/webnotes/install/jdk/install-windows.html#Environment


> それは環境変数のPATHを書き換えていないからですか?

その可能性も有りますが、ただ「出来ません」という情報だけでは分かりません。
エラーが出たならエラーメッセージから判断できるかも知れません。

QShell関数からバッチファイルを起動後に、バッチファイルが終了するまで待ちたい。

はじめまして。
掲題の通り、VB.netからshell関数を用いてバッチファイルを起動します。
その後、そのバッチファイルが終了してログファイルの出力を完了した後に、
ファイルを開いて確認したいのです。
thread.sleepなどで大体このくらいかなという時間を待ってみる、
などのやり方しか今は思いつかないのですが、
何か明確にバッチファイルの終了を受け取れる方法は無いものでしょうか。

どなたかご存知の方がいらっしゃいましたらご教授ください。

Aベストアンサー

Shell関数より Processクラスで実行したほうが簡単に待てますよ

Dim oPro as Process
oPro = Process.Start("..\..\a.bat")
oPro.WaitForExit()
MessageBox.Show("Hello")

といった具合です


人気Q&Aランキング

おすすめ情報