1
我有一個網站,使用asp.net,我想創建一個批處理腳本並運行它。批處理腳本命令不能遠程工作
我使用它來獲取最新的文件的TFS工作區
中的.bat只有
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
tf get "workspacePath" /force /recursive
,當我在遠程服務器上運行此通過點擊蝙蝠本身,它的工作原理好,做我需要的一切。
當我嘗試通過網站使用它,它不起作用。
我確認它確實讀取並試圖通過在蝙蝠位置添加一個隨機的.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()
incase這是問題,但這也沒有幫助
確保指定執行命令2的'StartInfo.WorkingDirectory'也看到,如果你可以執行'從遠程計算機的命令提示符下PsExec'。看看你是否從'PsTools'返回任何錯誤。 – Habib
我不知道你爲什麼在'Arguments ='部分裏面有雙引號。你爲什麼不利用string.Format函數,並且做這樣的事情:'p.StartInfo.Arguments = String.Format (「\」{0} \「\」{1} \「」,SomePath,someotherparams)'.... etc併爲您將要傳遞的參數數量添加'{}'參數 – MethodMan
@MethodMan當字符串是@「一些文本」轉義字符被忽略,「\」與「」相同以表示一個單引號 – Nick