Java创建bat文件和转义空间

时间:2013-10-06 14:26:34

标签: java batch-file

我的应用正在用户.bat目录中创建一个Startup文件,以便在用户登录时自动运行。

这就是我目前正在创建.bat

的方式
File startupFile=getStartupFile();
PrintWriter out=new PrintWriter(new FileWriter(startupFile));
out.println("@echo off");
out.println("start " + System.getProperty("user.dir") + fileSeparator +"MyApp.exe");
out.println("exit");
out.close();
}

顺便说一句:startupFile只是Startup目录

的位置

问题似乎是System.getProperty("user.dir")有时在路径中包含空格。例如,第二行可以是:

start C:\Program Files (x86)\MyApp\MyApp.exe

这会在尝试查找要运行的应用程序时中断.bat文件。

任何想法如何让.bat了解在哪里找到应用程序?无论在哪里安装?

1 个答案:

答案 0 :(得分:2)

在每种情况下(有或没有空格)引用文件位置都应该有效

out.println("start \"" + System.getProperty("user.dir") + fileSeparator +"MyApp.exe\"");