3 votes

Windows Batch file + console exe

J'ai essayé de créer un fichier batch qui transmet du texte à une application console. Dans ce cas, il s'agit d'un exe qui découpe un gros fichier .dat à l'heure et à la date de début et de fin spécifiées. Il attend le nom du fichier, le début, la fin, et une réponse y(es) pour commencer la coupe. Le script ci-dessous fonctionne, mais après avoir soumis la réponse finale "y", le .exe se termine sans même essayer de démarrer la coupe.

Quelqu'un peut-il voir ce qui ne va pas ? J'ai essayé les délais de ping, la pause, /wait - tous avec le même effet.

@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%

0voto

djangofan Points 6046

J'écrirais le script différemment, comme suit :

@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

Ensuite, appelez-le comme suit (à titre d'exemple) :

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

Il n'est pas garanti que ce code fonctionne. Je devine. Mais j'espère que vous comprenez l'idée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X