我有一个使用asp.net的网站,我正在尝试创建批处理脚本并运行它。
我用它来获取tfs工作区的最新文件
.bat只有
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
tf get "workspacePath" /force /recursive
当我通过点击.bat本身在远程服务器上运行它时,它运行正常并完成了我需要做的所有事情。
当我尝试通过网站使用它时,它不起作用。
我确认它确实阅读并尝试通过在bat的位置添加一个随机的.txt文件来执行该脚本,并让脚本删除它,该脚本通过该站点运行。
我有很多次通过我的网站运行批处理脚本,但是对于这个具体的例子,它不起作用。
我试过通过......
执行它Process.Start(@"filepath\getStuff.bat");
我还尝试过使用psExec
绕过批处理脚本Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @"path\PsExec.exe";
p.StartInfo.Arguments = @"\\vdvws052 ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\TF.exe"" get ""workspacePath"" /force /recursive";
p.Start();
我尝试过每一种方式我都添加了.WaitForExit()
这个问题,但这也无济于事
答案 0 :(得分:0)
使用&签署每个命令。
&安培;用于组合两个命令(或更多)。执行command1然后执行command2
""C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\TF.exe"" & get ""workspacePath"" /force /recursive"
&安培;&安培;有条件的组合。如果command1成功完成,则执行command2
""C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\TF.exe"" && get ""workspacePath"" /force /recursive"