这是aardio版本的。
import win.ui;
import win;
import process.popen;
/*DSG{{*/
var winform = win.form(text="管道演示";right=495;bottom=431;parent=...)
winform.add(
btnPing={cls="button";text="findstr";left=24;top=169;right=132;bottom=202;z=1};
edit={cls="edit";left=224;top=172;right=472;bottom=204;edge=1;z=6};
editInput={cls="edit";text="D:\ffmpeg>ffmpeg -i D:\ffmpeg\cache\a1.mp4";left=16;top=32;right=480;bottom=167;edge=1;multiline=1;z=2};
editOutput={cls="richedit";left=16;top=212;right=480;bottom=416;edge=1;hscroll=1;multiline=1;vscroll=1;z=3};
static={cls="static";text="输入字符串:";left=16;top=8;right=120;bottom=24;transparent=1;z=4};
static2={cls="static";text="启动参数:";left=136;top=177;right=208;bottom=193;align="right";transparent=1;z=5}
)
/*}}*/
winform.btnPing.oncommand = function(id,event){
winform.editOutput.text = "";
import process.popen
//打开命令行,隐藏命令行窗口
prcs = process.popen("cmd.exe")
cmd = /*
D:\ffmpeg\ffmpeg.exe -i D:\ffmpeg\cache\a1.mp4 2>D:\ffmpeg\output.txt
*/
prcs.write(cmd)
prcs.close();
for(i=1;100;1){
win.delay(10);
tmp = string.load( "D:\ffmpeg\output.txt" );
if( tmp ){
winform.editOutput.text = string.load( "D:\ffmpeg\output.txt" );
break;
}
}
winform.editOutput.appendText("OKOKOK");
}
winform.show()
win.loopMessage();
解释:shell输出分好多种,输出到屏幕,输出到文件;正确输出,错误输出等。在shell中,0表示键盘输出,1表示屏幕输出,2表示错误输出。 cmd > file,只是把屏幕输出重定向到文件中。我们平时调用ffmpeg相关命令,打印信息都被终端认为是错误输出,但是一般情况下这种信息也会输出到屏幕上,所以我们可以在屏幕上看到它。但是,当我们想重定向到文件中,却被系统认为是错误输出而忽略。
发表评论