atitit.跨语言执行cmd cli api的原理及兼容性设计草案
来源:互联网 发布:中国期刊数据库靠谱吗 编辑:程序博客网 时间:2024/05/18 05:50
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://blog.csdn.net/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的原理及兼容性设计草案
- Atitit.执行cli cmd的原理与调试
- Atitit.跨语言 文件夹与文件的io操作集合 草案
- Atitit.提升api兼容性的方法 v3 q326
- Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结
- Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性 应该内置到语言里面
- Atitit.跨平台预定义函数 魔术方法 魔术函数 钩子函数 api兼容性草案 v2 q216 java c# php js.docx
- Atitit.跨语言数据库db api兼容性 jdbc odbc ado oledb 增强方案
- Atitit .c#的未来新特性计划草案
- Atitit.编程语言原理---方法重载的实现与设计 调用方法的原理
- Atitit Atitit.软件兼容性原理----------API兼容 Qa7
- atitit.基于 Commons CLI 的命令行原理与 开发
- Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
- Atitit.跨语言反射api 兼容性提升与增强 java c#。Net php js
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- Atitit.提升 升级类库框架后的api代码兼容性设计指南
- Atitit.木马病毒 webftp 的原理跟个设计
- Atitit.跨语言系统服务管理器api兼容设计
- Atitit. Ati IDE 开发平台的第一版规划
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- 如何实现只收听一次sticky的广播,读取电池电量的值
- Light OJ 1191 Bar Codes (DP)
- SAE中的日志功能
- atitit.跨语言执行cmd cli api的原理及兼容性设计草案
- Leetcode 004 Median of Two Sorted Arrays
- 操作系统学习1
- HDU 4352 XHXJ's LIS(数位dp&状态压缩)
- JavaWeb项目中的绝对路径与相对路径问题
- Atitit.业务系统的新特性 开发平台 新特性的来源总结
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
- 数据结构学习笔记——树的概念
- 全面理解面向对象的 JavaScript