2012-02-05 81 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