“逃避”<&燃气轮机&引用;对于来自java的cmd文件
在cmd.exe中,我尝试以下操作:“逃避”<&燃气轮机&引用;对于来自java的cmd文件,java,batch-file,process,cmd,escaping,Java,Batch File,Process,Cmd,Escaping,在cmd.exe中,我尝试以下操作: echo " read "book <init>"" echo“阅读”书籍“” 错误是: 系统找不到指定的文件。 它与 echo "read "book ^<init^>"" echo“阅读”书籍^ 但是,如果我想从java作为参数发送,它将不起作用: String s4 = "read \"book ^<init^> \"" ; String s4=“阅读”书籍^\”; 如何从java中转义for cmd 完
echo " read "book <init>""
echo“阅读”书籍“”
错误是:
系统找不到指定的文件。
它与
echo "read "book ^<init^>""
echo“阅读”书籍^
但是,如果我想从java作为参数发送,它将不起作用:
String s4 = "read \"book ^<init^> \"" ;
String s4=“阅读”书籍^\”;
如何从java中转义<>for cmd
完整代码:
public static void main(String[] args) throws IOException, InterruptedException{
List<String> paramsArray = new ArrayList<String>();
String s = "read \"book ^<init^> \"" ;
paramsArray.add("exec.cmd"); //cmd file that only has echo %*
paramsArray.add(s);
ProcessBuilder process = new ProcessBuilder(paramsArray).inheritIO();
Process p = process.start();
int exitStatus = p.waitFor();
System.out.println("exitStatus is " + exitStatus);
if (exitStatus == 0)
{
System.out.println("Ok!");
}
else{
System.out.println("Not ok!");
}
}
publicstaticvoidmain(String[]args)抛出IOException、interruptedeexception{
List paramsArray=new ArrayList();
String s=“read\”book^\”;
paramsArray.add(“exec.cmd”);//只有echo%的cmd文件*
paramsArray.add(s);
ProcessBuilder进程=新的ProcessBuilder(paramsArray).inheritario();
进程p=进程.start();
int exitStatus=p.waitFor();
System.out.println(“exitStatus是”+exitStatus);
如果(exitStatus==0)
{
System.out.println(“Ok!”);
}
否则{
System.out.println(“不正常!”);
}
}
我想你的问题是:
“如何将参数传递给包含多个引号和特殊字符的bat文件,使bat文件无法对其进行解释?”
在Java中,可以将双引号(“”)替换为单引号:
your\u string=your\u string.replace(“\”,“”);
但最好在字符串前面加上“^”,即:
String s = "^" +"read \"book ^<init^> \"" ;
String s=“^”+”读取\“book^\”;
cmd中的测试:
echo " read "book <init>""
echo ^" read "book <init>""
echo“阅读”书籍“”
echo^“阅读”书籍“
为什么要在命令行上使用流重定向字符?@Kamayan,很抱歉,我不理解这个问题。我的问题是,我将一些参数从另一个文件传递到bat文件,该文件类似于“revert this:”eu.popin.tm" . 我需要用这个论点。但是我在系统找不到指定的文件时遇到了这个错误。我不理解cmd如何解释“<>”
字符将命令的输出重定向到文件。卡亚曼,我现在明白了。我想把这个参数当作一个字符串,从第一个“到最后一个”。我怎么做?