用什么代替路径中的空格字符?

我从Java应用程序启动bash,我在我的路径中执行命令,在bash空间内执行(例如cd / Documents and Settings / test),我使用Process Builder运行命令但是当路径有空格时它不起作用。 我尝试用%20替换空格但没有帮助。 该怎么办 ?

您可以将完整路径封装在引号中,如下所示:

 String quoted = "\"" + pathString + "\""; 

或者,当你使用bash时,逃避空间:

 String escaped = pathString.replace(" ", "\\ "); 

两者都应该作为cd命令的参数。

封装引用之间的整个路径。

 cd "/Documents and Settings/test" 

在这里使用%20是无稽之谈,它不是URL。 使用String []或List []而不是String,然后你可以保留空格,没有更多的cmd线args在那里分裂。

所以你可以使用

 "cd", "/Documents and Settings/test" 

但是,这作为shell命令毫无意义。 当你开始一个新的过程时,你无法以这种方式改变Java的工作目录。 您可能希望编写shell脚本(批处理文件)并从Java调用它。

您需要运行一个从bash提示符开始工作的命令。 例如cd / Document and Settings /不会。 尝试cd C:Documents\ and\ Settings

注意:bash要求您在开始时使用C:来访问此文件夹。 在开始时使用/将为您提供cygwin的虚拟根。