我想从Java调用Windows命令。
使用下面的行工作正常:
ProcessBuilder pb = new ProcessBuilder("cmd.exe","/C","find "searchstr" C://Workspace//inputFile.txt");
但是我想find该位置下的所有文本文件中的string,
ProcessBuilder pb = new ProcessBuilder("cmd.exe","find "searchstr" C://Workspace//*.txt");
但是它不起作用,Java控制台中没有输出。
如何从angular色类别的范围中排除angular色?
移动具有特定名称的所有文件(sorting)WINDOWS 8
双星号通配符是什么意思?
在parsing(即扩展)通配符时停止Linux shell
有什么解决scheme?
Windows 2003上的通配符子域名安装
为什么我的pipe道中的一个*在Perl中不能在Windows上打开?
在通配符的情况下,创build一个带有子域名称的Apache SetEnvvariables
Linux路由添加子域通配符-host * .domain.com
它看起来像find返回一个错误,因为路径名中的双正斜杠。 如果您将它们更改为反斜杠(在Java字符串中将它们加倍转义),那么它将成功。
您可以使用类似于以下内容的代码检查错误输出和find的退出代码(成功时为0,发生错误时为1):
ProcessBuilder pb = new ProcessBuilder( "cmd.exe","find "searchstr" C://Workspace//inputFile.txt"); Process p = pb.start(); InputStream errorOutput = new BufferedInputStream(p.getErrorStream(),10000); InputStream consoleOutput = new BufferedInputStream(p.getInputStream(),10000); int exitCode = p.waitFor(); int ch; System.out.println("Errors:"); while ((ch = errorOutput.read()) != -1) { System.out.print((char) ch); } System.out.println("Output:"); while ((ch = consoleOutput.read()) != -1) { System.out.print((char) ch); } System.out.println("Exit code: " + exitCode);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。