Atitit webshell java 实现 命令行输出读取问题总结

1.1. 读取组赛 或者读取了一部分。。使用cmd /c 模式,强制关闭刷新缓冲区 1

1.2. 乱码解决 1

1.3. /hislog/src/main/java/com/attilax/util/CliService.java 2

1.4. 目录转移转义问题 2

1.5. 管道符号问题 lastcmd="systeminfo | find \"内存\""; 2

1.6. 重定向 可以正常执行 2

1.7. 压缩解压 2

1.8. 指定当前目录方便搜素 3

2. 参考资料 3

1.1. 读取组赛 或者读取了一部分。。使用cmd /c 模式,强制关闭刷新缓冲区

String lastcmd = "cmd /c dir";

1.2. 乱码解决

public static String output_out_2str_ByIoutil(Process Process1, String charsetName) {

System.out.println("--start  getInputStream output");

InputStreamReader isr;

try {

isr = new InputStreamReader(Process1.getInputStream(), charsetName);

catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

String string = null;

try {

string = IOUtils.toString(isr);

//List<String> li=IOUtils.readLines(isr);

//string = Joiner.on("\r\n").join(li);

catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

return string;

}

1.3. /hislog/src/main/java/com/attilax/util/CliService.java

1.4. 目录转移转义问题

String lastcmd = "cmd /c dir c:\\0logs";

1.5. 管道符号问题 lastcmd="systeminfo | find \"内存\"";

貌似不能使用管道符,自己读取解析

1.6. 重定向 可以正常执行

cmd /c dir c:\0logs >dir.txt

1.7. 压缩解压

"C:\Program Files\WinRAR\Rar.exe" a  c:\0logs\log23.rar C:\0wkspc\hislog\WebContent\log\

1.8. 指定当前目录方便搜素

lastcmd=" cmd.exe /c dir log4j*.proper* /s";

这个在console执行ok  cmd.exe /c dir log4j*.proper* /s

但是  process不能执行,报error=2

把cmd变为strarry走 ok了。。。

As mentioned you can't change the CWD of the JVM but if you were to launch another process using Runtime.exec() you can use the overloaded method that lets you specify the working directory. This is not really for running your Java program in another directory but for many cases when one needs to launch another program like a Perl script for example, you can specify the working directory of that script while leaving the working dir of the JVM unchanged.

See Runtime.exec javadocs

Specifically,

public Process exec(String[] cmdarray,String[] envp, File dir) throws IOException

where dir is the working directory to run the subprocess in

shareimprove this answer

Process p = null;

ProcessBuilder pb = new ProcessBuilder("do_foo.sh");

pb.directory(new File("/home"));

p = pb.start();

2. 参考资料

java - How to set working directory with ProcessBuilder - Stack Overflow.html

Atitit webshell java 实现 命令行输出读取问题总结 1.1. 读取组赛 或者读取了一部分。。使用cmd /c 模式,强制关闭刷新缓冲区 1 1.2. 乱码解决 1 1.3. /h相关推荐

  1. java 调用命令行

    java 调用命令行 JAVA Runtime类 java调用命令行 1. java调用终端,使用命令"javac" 2. java调用终端,使用javac编译helloWorld ...

  2. 介绍Java -D 命令行参数

    介绍Java -D 命令行参数 我们在ide中执行程序经常需要设置VM参数,运行maven命令也需要设置参数,都是通过-D设置参数值.本文带你了解-D命令行参数. 1. 什么是Java -D命令行参数 ...

  3. Java中命令行调用大坑

    Java中命令行调用大坑 背景 我司有一个查询服务接口机,QPS大概40~50,调用方式是Java调用Shell命令行的方式,核心代码如下: Process ps = Runtime.getRunti ...

  4. java main命令行参数_java使用命令行参数

    有时你想在运行程序时将信息传递到一个程序中.这通过将命令行参数(command-line arguments )传递给main() 来实现.命令行参数是程序执行时在命令行中紧跟在程序名后的信息.在Ja ...

  5. 调试秘笈--MessageBox()格式化输出,windows程序支持命令行输出

    这是MessageBox的全家福: 格式化输出: int BoxPrintf( TCHAR * szBuffer, const TCHAR * szFormat, ...) {int iReturn ...

  6. java调用命令行命令_Java命令行界面(第4部分):命令行

    java调用命令行命令 我的Java命令行解析系列的第四部分介绍了Commandline ,它被描述为 "用于解析命令行参数的Java库",它"基于使用注释从命令行参数到 ...

  7. JAVA 的命令行运行

    作者:孙英鹏 撰写时间:2019年4月18日 JAVA 的命令行运行 今天要讲的是如何在命令行里进行打印运行.说明(此方法是老师的上课内容,我重新理解一遍) 首先创建一个文本文档,放在一个文件夹里,文 ...

  8. Java调用命令行+java生成词云

    java调用命令行 package com.weizu.control; import java.io.BufferedReader; import java.io.InputStreamReader ...

  9. 让 dotnet 命令行输出作为英文的方法

    在我的设备上,默认的 dotnet 命令行都是输出中文,如我输入 dotnet build 命令,里面的错误提示也是中文.在我想要和国外的小伙伴报坑时,如果里面有很多中文,我觉得他将会看不懂,从而不理 ...

  10. Java jar 命令行运行程序如何引用第三方依赖包

    1 引言 mybatis generator 是一个命令行运行工具,可以生成 mybatis 代码.但它需要依赖数据库驱动 jar,否则会抛出 ClassNotFoundException 异常. E ...

最新文章

  1. 一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码
  2. plt.figure()各参数使用
  3. 皮一皮:论智能酒店的高等级提示...
  4. java构造方法可以重载吗_Java基础教程之构造器与方法重载
  5. BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)
  6. 描述项目的典型用户与场景
  7. [Java基础]自然排序Comparable的使用
  8. 【国际专场】laravel多用户平台(SaaS, 如淘宝多用户商城)的搭建策略
  9. 信息学奥赛一本通(1234:2011)
  10. 如何在没有tomcat情况下直接连接JMX监控JVM
  11. python取出矩阵中的某一元素_将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例...
  12. Altium AD20导入DXF/DWG文件,导入AutoCAD绘制的树莓派4B板框及图形
  13. java.net.SocketException: Connection reset 问题分析
  14. 你不知道流量宝的神操作就能免费增加20万网站PV浏览量
  15. 2款QQ空间首页好看的psd源码
  16. PPT学习整理(四)表格
  17. 计算机无法找到组件c0000135,Win7系统应用程序正常初始化失败提示0xc0000135解决方法...
  18. 操作系统-逻辑地址转换为物理地址Java实现
  19. spleeter——人声伴奏分离工具安装
  20. 【树莓派基础小实验笔记】1. 点亮LED二极管

热门文章

  1. html5控制字大小的代码,js根据字符串长度控制字体大小代码
  2. android调用系统相机进行拍照,android调用系统相机拍照
  3. win和linux生成的密文不一样,AES加密解密Windows下跟linux下结果不同的解决方案
  4. 在 dotnet core (C#)下的颜色渐变
  5. MSSQL优化教程之1.4 其他几种类型的页面
  6. Java:装饰设计模式
  7. 安装Apache配置虚拟目录
  8. eclipse 批量 查询 替换
  9. sql语句:CASE WHEN END 的用法
  10. Ext4,Ext3的特点和区别