0

各呼び出しの後に Run または Exec に環境変数を保持させる方法はありますか?

たとえば、vcvars32パスなどの多くの構成を行う呼び出し:

shell.Run "vcvars32.bat", 0, True

msbuild次に、この構成された環境で呼び出すことができるようにしたいと思います。

shell.Run "msbuild.exe example.sln /t:Rebuild /p:Configuration=""Debug|Win32""", 0, True

これは可能ですか?

私が見つけた唯一の代替手段は、両方のコマンドを使用してコンボ バッチ スクリプトを作成し、代わりにそれを呼び出すことです。しかし、セットアップ スクリプトを毎回呼び出す必要があるとしたら、それは無駄に思えます。一度環境をセットアップしてから、それを再利用するのは素晴らしいことです。

4

2 に答える 2

0

さて、あなたはそれを関数として置くことができますか?それがあなたの最後の質問に答えるかどうかはわかりませんが、覚えておく必要のある「もの」がはるかに少なくなります。同じ関数で vcvars32.bat が必要かどうかわからないため、同じ関数に vcvars32.bat を配置しました。

sub
funcmsbuild
end sub

Function funcmsbuild
shell.Run "vcvars32.bat", 0, True 
shell.Run "msbuild.exe example.sln /t:Rebuild /p:Configuration=""Debug|Win32""", 0, True
end function

または、すべての環境変数を文字列に入れて呼び出すことができますか? しかし、その「であろう」文字列には多くの引用符が含まれているため、混乱を招きます。また、3重引用符と4重引用符を順番に配置する必要があります(chr(22)を使用しない限り、私は引用符を信じています)

于 2013-05-03T13:29:03.490 に答える
0

vcvars32.bat と msbuild.exe の呼び出しを 1 つのバッチ ファイルに入れます。CALLvcvars32.bat を呼び出すために使用すると、環境が保持されます。SLN およびその他の引数をバッチ ファイルに渡し、%1、%2、%3 などを使用してそれらを取得します。必要に応じてそれらを引用符で囲むことを忘れないでください。

すべてを 1 つの VBS ファイルにまとめるほどきれいではありませんが、最も簡単な方法です。

于 2013-05-13T14:28:03.290 に答える