2010-11-03 16 views
0

我正在尝试创建一个快捷方式,它将在runas命令下加载vcvarsall.bat(Visual Studio命令提示符)。具体来说,我想要一个在特定文件夹中开始的快捷方式;将runas网络凭据设置为域帐户;管理本地帐户关联性;并正确设置了msbuild环境变量。为runas/netonly和vsvarsall.bat创建快捷方式。什么是引用规则使用?

背景:我们有不在域上的团队城市构建代理。偶尔,我需要排查它们。这意味着在团队城市本地帐户下运行构建,使用域帐户从源代码获取。在家工作时,我也有同样的情况 - 我的家用电脑不在域上。

我可以使用runas.exe来获取正确的凭据,但我没有得到msbuild环境变量。

%SystemRoot%\system32\runas.exe /netonly /user:domain\teamcityagent "%comspec% /k 

如果我加载的环境变量按快捷方式,并设置文件夹开始,我得到的环境变量和工作文件夹,但我必须输入我的凭据每个TFS命令。

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 

如何将这两个组合成一个快捷方式?这里适用的命令引用规则是什么?你能连接快捷方式中的命令吗?如果没有批处理文件,最好做到这一点,但如果我不得不退出批处理文件,我会这样做。

回答

2

您可以使用&&执行多个单独的命令。连续命令只有在前一个命令成功时才会执行(即错误级别0)。如果你想强制所有的命令执行,只需使用一个&

例如,印刷“foo”和“酒吧”使用runas时则暂停

%comspec% /c echo foo && echo bar && pause 

不过你的情况,你需要用完整的命令和命令的参数在双引号。参数中的任何双引号都需要用反斜杠进行转义。其他反斜杠应正确解释,无需逃脱。要以加载变量的其他用户身份运行打印问候语,可以执行以下操作:

%SystemRoot%\system32\runas.exe /netonly /user:domain\teamcityagent "%comspec% /k \"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat\" x86 && echo Hello %USERDOMAIN%\%USERNAME%" 
+0

酷!反斜杠转义字符是我所需要的。当使用runas时,快捷方式的属性不会受到尊重 - 我登录到“C:\ WINDOWS \ system32”中。 && save me here:%SystemRoot%\ system32 \ runas.exe/netonly/user:domain \ teamcityagent“%comspec%/ k \”C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat \“x86 && D:&& cd D:\ TeamCity-MappedWorkspaces \ – Precipitous 2010-11-04 17:26:54

相关问题