2012-04-09 93 views
1

我寫了一個小的批處理文件副本從解決system32文件夾一個exe。從Windows執行批處理文件窗體應用程序

copy "blah.exe" "%systemroot%/System32" 

批處理文件工作正常,副本,如果從桌面用雙clikcing RAN(exe文件放置在桌面上爲好)的exe

不過,我試圖做的是從Windows應用程序是:

Process.Start("sample.bat"); 

(EXE文件和batfile - >屬性 - >要始終複製的輸出) cmd窗口確實出現,但目標目錄中沒有.exe文件。我在這裏錯過了什麼?

+0

你爲什麼想到'blah.exe'要在輸出文件夾? – Oded 2012-04-09 10:15:41

+0

亂搞與system32是一個壞主意......最近的Windows版本有幾個安全措施(以及其他UAC)來防止這種情況......你究竟在做什麼? – Yahia 2012-04-09 10:19:53

+0

@Yahia:試圖複製sysinternal工具來System32下是阿貝爾的命令行 – user1240679 2012-04-09 11:16:15

回答

0

在批處理文件中改變路徑,你有blah.exe特定的文件夾,更改爲特定的驅動器,然後以特殊folderlets說你的源文件夾是C:然後\測試在批處理文件中鍵入cd \測試,它應該是這樣的:

C: 
cd\test 
copy "blah.exe" "%systemroot%/System32" 

或者使用複製與完整路徑例如

copy "C:\test\blah.exe" "%systemroot%/System32" 

編輯: 要使用複製CMD嘗試:

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
System.Diagnostics.ProcessStartInfo startInfo = new  System.Diagnostics.ProcessStartInfo(); 
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = "/C copy /b blah.exe %systemroot%/System32"; 
process.StartInfo = startInfo; 
process.Start(); 

編輯2:或爲批處理文件

System.Diagnostics.Process.Start("cmd", "/c sample.bat"); 
+0

我有exe文件和批處理文件在同一個文件夾中。我試着把'batch'文件和'exe'放到桌面上,然後執行上面的批處理文件,這很好。在這種情況下,我不需要將源目錄更改爲'cd Users/someuser/Desktop'。將批處理文件的完整路徑放在這裏可以工作,但是當我部署項目時,批處理文件中這個'cd'的路徑將會改變,在這種情況下,什麼都不會發生。 – user1240679 2012-04-09 11:10:01

+0

如果我直接從bin/debug輸出文件夾運行批處理文件,它仍然可以工作,並將exe複製到'System32'中。這只是這不運行從'Process.Start' – user1240679 2012-04-09 11:12:43

+0

@ user1240679,只是檢查編輯答案,也看看這個問題http://stackoverflow.com/questions/1469764/c-sharp-run-command-prompt-命令 – Habib 2012-04-09 11:44:46

相關問題