2012-02-05 85 views
1

我設法改變系統時間和日期使用java中的運行時。但是我必須一次運行這兩個命令,一次打開兩個命令提示符而不是一個命令提示符,因爲如果同時運行這兩個命令,命令提示符會將它們作爲一個無效命令獲取它們java運行時cmd日期和時間命令

//這是打開的工作代碼2個cmd`s:

Runtime rt = Runtime.getRuntime(); 
rt.exec("elevate.cmd cmd.exe /c time 11:30"); 
rt.exec("elevate.cmd cmd.exe /c date 02-04-2012"); 

//這是我認爲它應該打開一個cmd並執行這兩個命令

Runtime rt = Runtime.getRuntime(); 
rt.exec("elevate.cmd cmd.exe /C time 11:25 /C date 02-05-2012"); 

的代碼,但CMD將返回"The system cannot accept the time entered". 注:ELEVATE .cmd是一個批次文件我用它來以管理員身份運行cmd(win7),你可以從here下載它。

如何通過打開cmd一次來更改系統時間和日期?或者我有什麼其他選擇?從這個SOQ

+2

您是否嘗試在'&'或'&&'字符的同一行中運行這兩個命令? – EricSonaron 2012-02-05 12:25:54

+0

它沒有工作...... exec的參數應該是String或String [],而操作符'&&'或'&'不能用於字符串變量 – 2012-02-05 14:53:07

回答

0

嘗試的解決方案:因爲如果你是一個用戶輸入他們

基本上,創建一個進程,然後「寫」命令給它。我沒有Win7測試(不知道它如何與提升的特權提示結合起來),但它在Ubuntu 11.10上適用於我 - 希望它適用於您的情況。

或者,你可以讓另一.cmd文件(稱爲例如changedt.cmd),將包含兩個命令:

elevate.cmd cmd.exe /c time 11:30 
elevate.cmd cmd.exe /c date 02-04-2012 

,然後運行它,而不是:

Runtime rt = Runtime.getRuntime(); 
rt.exec("changedt.cmd"); 

這應該在任何情況下工作,因爲您似乎成功地運行了幾乎相同的事情,但添加了另一個.cmd文件。

希望這會有所幫助。

+0

好的,謝謝你的回答。你說,使用另一個.cmd文件,並附上neil在他的評論中推薦給我的完整命令。我一次嘗試做幾件事,但自從它工作以來,它對我很好。再次感謝你們! – 2012-02-06 10:55:00

+0

當然,很樂意幫忙! – 2012-02-06 23:57:52