atitit.跨语言执行cmd cli api的原理及兼容性设计草案

1. 标准输入,标准输出,标准错误与重新定向1

2. 常见问题2

2.1. 执行bat文件2

2.2. 执行bat文件  /c  与/k   /k  参数,有利于调试2

2.3. Bat参数的隐藏命令::使用@后头符2

2.4. 空格的问题 双引号解决2

2.5. 回显乱码 cmd win默认是gbk编码..使用gbk编码读取佐ok2

2.6.  双引号转译问题2

2.7. Name param的问题2

3. Java code3

4. C#.net code4

5. 参考5

1. 标准输入,标准输出,标准错误与重新定向

当Linux执行一个程序的时候,会自动打开三个流,标准输入(standard input),标准输出(standard output),标准错误(standard error)。比如说你打开命令行的时候,默认情况下,命令行的标准输入连接到键盘,标准输出和标准错误都连接到屏幕。对于一个程序来说,尽管它总会打开这三个流,但它会根据需要使用,并不是一定要使用。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2. 常见问题

2.1. 执行bat文件

2.2. 执行bat文件  /c  与/k   /k  参数,有利于调试

。如果使用 cmd/c 就可以省掉 EXIT 了

使用process explorer可以看到实际的调用参数

2.3. Bat参数的隐藏命令::使用@后头符

2.4. 空格的问题 双引号解决

2.5. 回显乱码 cmd win默认是gbk编码..使用gbk编码读取佐ok

header('Content-Type:text/html;charset=gbk');

2.6.  双引号转译问题

好像是三个双引号

2.7. Name param的问题

参考apache cli模块即可。

3. Java code

package com.attilax.cmd;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.UnsupportedEncodingException;

public class CmdX {

public static void main(String[] args) {

// TODO Auto-generated method stub

}

public static void redirectEcho2Screen(Process process) {

System.out.println("--echo stdin info:");

echoCmdResult_out(process.getInputStream());

System.out.println("--echo err info:");

echoCmdResult_out(process.getErrorStream());

}

private static BufferedReader echoCmdResult_out(InputStream is)

{

BufferedReader reader = null;

// BufferedReader reader;

InputStreamReader inputStreamReader;

try {

inputStreamReader = new InputStreamReader(is,

"gbk");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

throw new RuntimeException(e);

}

reader = new BufferedReader(inputStreamReader);

String line = null;

try {

line = reader.readLine();

} catch (IOException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

while (line != null) {

System.out.println(line);

try {

line = reader.readLine();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (reader != null) {

try {

reader.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return reader;

}

}

4. C#.net code

参考Atitit.执行cli cmd的原理与调试 - attilax的专栏 - 博客频道 - CSDN.NET.htm

5. 参考

Linux文本流和标准输入、标准输出、标准错误与重定向介绍_LINUX_操作系统_脚本之家.htm

标准输入、输出和错误输出 - huaijin - ITeye技术网站.htm

Atitit.执行cli cmd的原理与调试 - attilax的专栏 - 博客频道 - CSDN.NET.htm

atitit.跨语言执行cmd cli api的原理及兼容性设计草案的更多相关文章

  1. Atitit.跨语言系统服务管理器api兼容设计

    Atitit.跨语言系统服务管理器api兼容设计 1. Common api,兼容sc ,service control??1 1.1. 服务创建,use sc1 1.2. 服务delete ,use ...

  2. atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js

    atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js 1. 两个方法:: bat vs mysqldump(推荐)  vs   lang  ...

  3. Atitit.跨语言反射api 兼容性提升与增强 java c#。Net  php  js

    Atitit.跨语言反射api 兼容性提升与增强 java c#.Net  php  js 1. 什么是反射1 1.1.       反射提供的主要功能:1 1.2.       实现反射的过程:1 ...

  4. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案

    Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案 1. 跨语言db api兼容性..1 2. 目前访问数据库的接口很多.比较常用的jdbc odbc 以 ...

  5. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面

    Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面 1. 常用算法1 1.1. 目录2 1.2. 定义和用法编辑2 1.3 ...

  6. Atitit.跨语言异常转换机制 java c# php到js的异常转换

    Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx   直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...

  7. Atitit.跨语言  文件夹与文件的io操作集合  草案

    Atitit.跨语言  文件夹与文件的io操作集合  草案 1. Jdk原生的太难用了..1 2. PS: apache commons-io包,FileUtils有相关的方法,IOUtils一般是拷 ...

  8. Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结

    Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结 1.1. 要兼容的重要语言api1 1.2. 常用基础api分类 core api1 1.3. 比较常用的扩展库 ...

  9. Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

    Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结 1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码, ...

随机推荐

  1. [P2396] yyy loves Maths VII

    Link: P2396 传送门 Solution: 一眼能看出$O(n*2^n)$的状压$dp$ 但此题是个卡常题,$n=23/24$的时候就别想过了 这题算是提供了一种对状压$dp$的优化思路吧 原 ...

  2. 某道我xjb想的题

    Function 时限:5s 空限:256M (都是单点) Discription 现在你有一个函数: inline int f(int x){ int tot=0,alr=0,now; while( ...

  3. 反序显示一个整数 Exercise06_04

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:反序显示一个整数 * */ public class Exercise06 ...

  4. INLINE-BLOCK和FLOAT(二)(转)

    一.一抹前言 没有爱的日子,时间如指尖细沙,不知不觉就流逝了.写“CSS float浮动的深入研究.详解及拓展(一)”和“CSS float浮动的深入研究.详解及拓展(二)”似乎就在不久前,然而相隔差 ...

  5. pythonGUI编程打开默认浏览器

    代码: from tkinter import * import webbrowser root = Tk() text = Text(root,width=30,height = 5) text.p ...

  6. debian 6软件更新源列表

    deb http://ftp.debian.org/debian/ squeeze main non-free contribdeb http://ftp.debian.org/debian/ squ ...

  7. 我的vim配置---jeffy-vim-v2.2.tar

    http://files.cnblogs.com/pengdonglin137/jeffy-vim-v2.2.rar 修改了配色. 使用方法: 在Linux下,解压后,进入解压后的目录,执行./ins ...

  8. ibatis传入list对象

    在使用ibatis的时候经常需要传入list对象,sql语句如下. <select id="GET-PERSONS" parameterClass="java.ut ...

  9. solr6.6 导入 pdf/doc/txt/json/csv/xml文件

    文本主要介绍通过solr界面dataimport工具导入文件,包括pdf.doc.txt .json.csv.xml等文件,看索引结果有什么不同.其实关键是managed-schema.solrcon ...

  10. Golang 内存热力图

    https://cizixs.com/2017/09/11/profiling-golang-program/