伊莉討論區

標題: Diagnostics.Process.Start問題 [打印本頁]

作者: cm101115    時間: 2017-12-22 12:49 AM     標題: Diagnostics.Process.Start問題

想請問各位
我在cmd中可以使用的程式碼
winrar a -m0 E:\test.rar  E:\test
為何在vs中沒法使用
System.Diagnostics.Process.Start("winrar a -m0 " + "E:\\test.rar E:\\test");
執行?
作者: sggleeee    時間: 2017-12-22 03:03 AM

以7z指令解壓縮檔案為例,底下方式給你參考:
  1.             System.Diagnostics.ProcessStartInfo info = new
  2.                System.Diagnostics.ProcessStartInfo();

  3.             info.FileName = @"C:\Program Files\7-Zip\7z.exe";
  4.             info.Arguments = "e c:\\Test.zip -oc:\\Test";
  5.             System.Diagnostics.Process.Start(info);
複製代碼
  1. System.Diagnostics.Process.Start(@"C:\Program Files\7-Zip\7z.exe", "e c:\\Test.zip -oc:\\Test");
複製代碼
關於Process.Start方法的使用,請參考官方線上文件 (google關鍵字 "Process.Start" 就可以找到)
作者: sunneo    時間: 2018-1-21 03:21 AM

原因應該是出在PATH環境變數並沒有直接作用在你新生成的Process上,
你要確定winrar這個能不能被找到,要先確認Environment裡面有沒有對應的PATH
比方說
String pathVar= System.Environment.GetEnvironmentVariable("PATH");
Process process=new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.EnvironmentVariable["PATH"]=pathVar;
process.StartInfo.FileName="winrar.exe";
process.StartInfo.Arguments= "a -m0 " + "E:\\test.rar E:\\test";
process.Start();






歡迎光臨 伊莉討論區 (http://www53.eyny.com/) Powered by Discuz!