3

我一直在尝试创建一个将文本传递给控制台应用程序的批处理文件。在这种情况下,它是一个将大型 .dat 文件修剪为指定的开始/停止时间和日期的 exe。它需要文件名、开始、停止和 ay(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%
4

1 回答 1

0

我会以不同的方式编写脚本,类似于:

@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

然后,这样称呼它(例如):

CALL .\script.bat blah.BIN "2012/11/25 15:00:00" "" "Y"

不保证此代码会起作用。我猜。但希望你能明白。

于 2013-08-14T20:23:09.397 回答