使用java的特定提示命令
我想在java下执行以下windows命令: rmdir/s C:\Main\Second\Third Y 问题是有两个命令要运行,一个用于删除,一个用于确认(如您所见,一个简单的“Y”) 我知道这是可行的,但我没能成功使用java的特定提示命令,java,windows,command,prompt,Java,Windows,Command,Prompt,我想在java下执行以下windows命令: rmdir/s C:\Main\Second\Third Y 问题是有两个命令要运行,一个用于删除,一个用于确认(如您所见,一个简单的“Y”) 我知道这是可行的,但我没能成功 String rmCommand = "cmd.exe /c rmdir /s /q C:\\Main\\Second\\Third"; Runtime runt = Runtime.getRuntime()
String rmCommand = "cmd.exe /c rmdir /s /q C:\\Main\\Second\\Third";
Runtime runt = Runtime.getRuntime();
Process process = runt.exec(rmCommand);
所以我的问题是:多亏了JAVA代码,如何在提示符下运行上述两个命令
编辑:我根据一些建议修改了一些初始代码,但仍然不起作用。。。我不知道该怎么办。
rmdir
不是一个程序,它是命令shell的一部分。因此,您需要运行以下操作:
"cmd.exe /c rmdir /s C:\\Main\\Second\\Third"
(对于生产版本,您当然要确保获得了正确的cmd.exe。)为了避免被要求确认,请在rmdir命令中添加/Q:
但使用rmdir执行此操作是一种非常糟糕的做法。如果你不想自己做重复删除的事情,使用。这并不是rmdir是否足够的问题,而是使用正确方法的问题。如果我理解正确的话,您的问题是java不能删除打开的文件,但是rmdir可以。看起来更像是代码打开文件的问题,不是吗?抛开是否良好的做法的问题,您的问题的答案如下:创建一个包含单个字符的文件
Y
。假设它的名字叫y.txt
那么您的命令将是:
cmd.exe /c rmdir /s C:\\Main\\Second\\Third < y.txt
cmd.exe/c rmdir/s c:\\Main\\Second\\Third
顺便说一句,您只需使用java即可轻松删除文件/目录。不,这对我不起作用。我尝试过删除,但遇到了这样的错误::/所以我认为这是我唯一的解决方案。必须同意@MatjazMuhic。为什么要为此付出代价?如果因为文件被锁定而无法删除,那么rmdir也不会工作,不是吗?您是否尝试过echo y | cmd.exe/c rmdir/s/q c:\\Main\\Second\\Third
我明白了,谢谢您的快速回答。但是问题:如果cmd.exe请求确认怎么办?在这里,我需要在cmd中输入“Y”以确认删除。@user1618814最好在您的问题中添加此详细信息,以使其更清楚@Alex k:如前所述:“因此,我的问题是:由于JAVA代码,如何在提示中运行上述两个命令。”我还编辑了我的帖子,如果不清楚,很抱歉您可以使用/q使其不提问,我想,我不知道哪里会是我的错误。文件F1=新文件(“BLABLA”)不必关闭,是吗?是的,关于打开的文件,您可能是对的,但我很难检查整个代码。我需要再次检查400行,我不知道我在哪里会忘记这一点..顺便说一下,我尝试使用rmdir和您的提案,没有错误,但没有删除任何内容:/Jon Skeet回答说,您是否使用cmd.exe运行了它?