2013-05-02 45 views
0

有没有办法在每次调用之后让Run或Exec保留环境变量?VBScript运行/执行设置环境一次并重复使用

例如,调用vcvars32,做了很多的路径配置和什么:

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

然后我想能够调用msbuild在这种配置环境:

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

这可能吗?

我能找到的唯一选择是用两个命令创建一个组合批处理脚本,然后调用它。但是如果我每次都需要调用安装脚本,那似乎很浪费,如果让环境设置一次然后再使用它,那将是非常好的。

回答

1

将调用vcvars32.bat和msbuild.exe放在一个批处理文件中。使用CALL来调用vcvars32.bat,它将保留环境。将SLN和其他参数传递给批处理文件并使用%1,%2,%3等检索它们。如果需要,请记住在它们周围加引号。

它不像一个VBS文件中的所有东西那样干净,但它是最简单的方法。

+0

谢谢,不知道为什么我没有想到明显! – 2013-05-13 15:31:52

0

那么你可以把它作为一个函数?我不确定这是否会回答你的最终问题,但它会创造出你需要记住的更少的“东西”。 我把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 

否则你可以把所有的环境变量放在一个字符串中并调用它?但是这样会让你感到困惑,因为你有很多引用“会是”字符串,并且需要你有三个和四个引号(除非你使用chr(22)i引用)