这个程序可以正常执行,但是脚本里的zip命令没有执行,也没有任何日志,不解。2.cmd如下:@echo off
echo zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log
zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log
echo 0
@echo on/**
* 执行脚本并返回执行结果
* @param shell
* @return 0:正常完成,1:执行失败, -1:未知状态
*/
static private int exeScript(File shell){
int state = 1;
Runtime run = null;
Process proc = null;
InputStream in = null;
int echo = 0;
try {
run = Runtime.getRuntime();
proc = run.exec(shell.getAbsolutePath());
in = proc.getInputStream();
proc.waitFor();
switch(echo = in.read()){
case '0':
state = 0;
break;
case '1':
state = 1;
break;
default:
state = -1;
}
if(null != in) in.close();
} catch (Exception e) {
state = 1;
}
return state;
}static void t2(){
File file = new File("D:\\test\\2.cmd");
int done = exeScript(file);
System.out.println("完成? " + done);
}
echo zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log
zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log
echo 0
@echo on/**
* 执行脚本并返回执行结果
* @param shell
* @return 0:正常完成,1:执行失败, -1:未知状态
*/
static private int exeScript(File shell){
int state = 1;
Runtime run = null;
Process proc = null;
InputStream in = null;
int echo = 0;
try {
run = Runtime.getRuntime();
proc = run.exec(shell.getAbsolutePath());
in = proc.getInputStream();
proc.waitFor();
switch(echo = in.read()){
case '0':
state = 0;
break;
case '1':
state = 1;
break;
default:
state = -1;
}
if(null != in) in.close();
} catch (Exception e) {
state = 1;
}
return state;
}static void t2(){
File file = new File("D:\\test\\2.cmd");
int done = exeScript(file);
System.out.println("完成? " + done);
}
如:
tree /f > D:\1.txt
'>>' 追加方式
@echo off
echo zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log 2>&1
zip -q -r ..\..\download\eac.zip G:\down\ms>>oper.log 2>&1
echo 0
@echo on