Batch file Windows批处理文件&x2B;控制台exe

Batch file Windows批处理文件&x2B;控制台exe,batch-file,console,exe,Batch File,Console,Exe,我一直在尝试创建一个批处理文件,将文本传递到控制台应用程序。在这种情况下,它是一个exe,将一个大的.dat文件修剪到指定的开始/停止时间和日期。它需要文件名、开始、停止和y(es)响应来开始剪切。下面的脚本可以工作,但在提交最后的“y”响应后,.exe甚至不尝试开始剪切就终止了 有人能看出哪里出了问题吗?已尝试ping延迟、暂停和/等待-所有这些都具有相同的效果 @echo Off Set program=c:\rtdm_cutter.exe ( echo 20121126_191613_

我一直在尝试创建一个批处理文件,将文本传递到控制台应用程序。在这种情况下,它是一个exe,将一个大的.dat文件修剪到指定的开始/停止时间和日期。它需要文件名、开始、停止和y(es)响应来开始剪切。下面的脚本可以工作,但在提交最后的“y”响应后,.exe甚至不尝试开始剪切就终止了

有人能看出哪里出了问题吗?已尝试ping延迟、暂停和/等待-所有这些都具有相同的效果

@echo Off

Set program=c:\rtdm_cutter.exe

(
echo 20121126_191613_09224_RTDM.BIN 
echo 2012/11/25 15:00:00
echo 2012/11/25 15:15:00
echo y
) |start /realtime /B /wait %program%

我将以不同的方式编写脚本,类似于以下内容:

@echo off  
:: script.bat  
SET programx=c:\rtdm_cutter.exe
IF "%1"=="" ( SET one=20121126_191613_09224_RTDM.BIN ) ELSE ( SET one=%1 )
IF "%1"=="" ( SET two=2012/11/25 15:00:00 ) ELSE ( SET one=%2 )
IF "%1"=="" ( SET thr=2012/11/25 15:15:00 ) ELSE ( SET one=%3 )
IF "%1"=="" ( SET answer=Y ) ELSE ( SET answer=%4 )
IF "%4"=="" ECHO %answer% | start /realtime /B /wait %programx% %one% %two% %thr%
IF "%4"=="" GOTO :END    
ECHO %answer% | cmd.exe /C %programx% %1 %2 %3    
:END
pause
然后,这样称呼它(作为示例):


不保证此代码会工作。我猜。但希望你能明白这一点。

多了解一下环境。.bin、.exe和.bat文件的相互关系在哪里?这是为了解决.exe是否正在查找.bin文件的问题。接下来,.exe是否在发送“y”后输出任何消息?控制台exe本身、rtdm_cutter.exe是敏感的,文件名或时间参数有任何错误,它将立即退出。它的任务是将RTDM.BIN文件(~4gb)裁剪为更小的大小(更小的时间范围)。因此,所发生的是,上面的bat文件正在启动rtdm_cutter.exe,它正在接受所有管道输入,但在最后的“是”之后结束,而不是生成剪切。下面是它停止位置的屏幕截图:尽管有/wait,但它会立即关闭。是的,正在找到bin文件,或者它不会继续接受开始时间。取得了一些进展。通过在“echo 2012/11/25 15:15:00”的末尾添加“&&more”,我有机会手动输入y(是),并正确开始切割。如果我能让它自动接受Y并继续,那将是完美的。因为更多的选项起作用,它看起来确实是一个时间问题。我看不到ping延迟工作的原因是,在调用start命令之前,它将被评估并经过。在将输出定向到start命令之前,脚本将处理括号内的所有命令。然而,越是有效,因为它在输出中充当中断。
CALL .\script.bat blah.BIN "2012/11/25 15:00:00" "" "Y"