我创建了一个java类来执行我桌面上的批处理文件,这样批处理文件中的命令也会被执行。问题是,我不断收到错误:
文件名,目录名或卷标语法不正确。 文件名,目录名或卷标语法不正确。
我检查了.bat名称和目录。它是正确的。当我键入cmd /c start C:/Users/attsuap1/Desktop
时,Windows资源管理器会打开桌面选项卡。但是,当我键入cmd /c start C:/Users/attsuap1/Desktop/DraftBatchFile.bat
时,它会给出错误。我的DraftBatchFile.bat在我的桌面上。
以下是我的java代码:
public class OpenDraftBatchFile{
public OpenDraftBatchFile() {
super();
}
/**Main Method
* @param args
*/
public static void main(String[] args) {
//Get Runtime object
Runtime runtime = Runtime.getRuntime();
try {
//Pass string in this format to open Batch file
runtime.exec("cmd /c start C:/Users/attsuap1/Desktop/DraftBatchFile.bat");
} catch (IOException e) {
System.out.println(e);
}
}
为什么即使目录正确也无法执行批处理文件?有人请帮帮我。非常感谢你。
这些是DraftBatchFile.bat
中的代码 @echo off
echo.>"Desktop:\testing\draft.txt"
@echo Writing text to draft.txt> Desktop:\testing\draft.txt
当我通过运行java类执行DraftBatchFile.bat时,我想在我创建的测试文件夹中创建draft.txt文件(在桌面中)。
答案 0 :(得分:2)
没有desktop:\
而是尝试这样的事情。
@echo off
echo . %userprofile%\Desktop\testing\dblank.txt
@echo Writing text to draft.txt > %userprofile%\Desktop\testing\dblank.txt
答案 1 :(得分:0)
您只需更改目录并创建新子目录(如果不存在)。我的提议是更改.bat文件,如下所示:
@echo off
if not exist "%userprofile%\Desktop\testing" mkdir "%userprofile%\Desktop\testing"
echo.>"%userprofile%\Desktop\draft.txt"
@echo Writing text to draft.txt>"%userprofile%\Desktop\draft.txt"
您还可以创建.txt文件并通过Java代码写入文本:
File directory = new File(System.getProperty("user.home")+"//Desktop//testing");
if (!directory.exists())
directory.mkdirs();
String content = "Writing text to draft.txt";
File file = new File(System.getProperty("user.home")+"//Desktop//testing//draft.txt");
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(file));
writer.write(content);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (writer != null)
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}