Ajuda com batch

silversk8ter

I folded Myself
Viva!
Se alguém me puder dar umas luzes para criar um batch, desde já agradeço...(tenho feito umas coisas mas mt básicas e n me estou a safar com este)

O problema é o seguinte:
Tenho 10 pastas, cada uma com um log.txt e com um run.exe

Passos, pasta 1:
1- Verificar se log.txt contém alguma linha de texto com o valor "100%"
2- Se não tiver "100%" verificar se o run.exe está a correr
3- Se não estiver a correr, iniciar run.exe
4- Loop para verificar quando é que o .txt contém os "100%"
5- Quando conter os "100%" parar o run.exe (taskkill)

6- Iniciar o mesmo processo na pasta 2 e pelas outras pasta em diante...



Estou um pouco baralhado com isto..

Alguma ajuda?
Cheers' & :kfold:

Ps: Alguma outra solução sem ser um batch? um programa, etc...?
 
Última edição:
O que consegui apurar foi isto, rudimentar e possivelmente mt fora das regras, mas, funciona:


Código:
[SIZE=2]:inicio

if exist consola1 goto loop1

   goto Continue1



:Loop1

find /i "100%%" consola1\unitinfo.txt
if %errorlevel% EQU 0 (goto Continue1)
tasklist.exe /FI "IMAGENAME eq fah1.exe" 2>NUL | find.exe /i "fah1.exe" >NUL || GOTO START1
ping -n 300 127.0.0.1 >NUL
GOTO Loop1
:start1
cd consola1
start run.vbs
GOTO Loop1
:Continue1
TASKKILL /F /IM "fah1.exe"


if exist consola2 goto loop2

   goto Continue2


:Loop2
find /i "100%%" consola2\unitinfo.txt
if %errorlevel% EQU 0 (goto Continue2)
tasklist.exe /FI "IMAGENAME eq fah2.exe" 2>NUL | find.exe /i "fah2.exe" >NUL || GOTO START2
ping -n 300 127.0.0.1 >NUL
GOTO Loop1
:start1
cd consola2
start run.vbs
GOTO Loop2
:Continue2
TASKKILL /F /IM "fah2.exe"

..etc..

goto inicio [/SIZE]
Resta agora, antes do loop final, verificar se todos os txt's contêm a string "100%" para fazer o exit ao bat..

Alguma sugestão para por a coisa mais correcta, não tão extensa, etc..?

Desde já obrigado.
 
Viva!
Eu preciso disso para automatizar o folding numa máquina sem ligação á net..
Também é essa a tua necessidade?

Não. A minha consola de SMP cada vez que termina uma WU, envia-a, descarrega a nova (ou não, não percebi muito bem ainda) e depois dá um FILE_IO_ERROR (sempre e só nesta altura).

O objectivo era algo do género:
- 'Ler' as últimas ~3 linhas do FAHlog.txt;
- Se encontrar FILE_IO_ERROR, terminar consola simulando 'Ctrl+C' (preferencialmente); esperar ~10min e talvez apagar alguns ficheiros; executar de novo a consola;
- Esperar uns minutos (para não estar a ocupar tempo de CPU);
- Goto ínicio.

Mas possivelmente ate é capaz de estar já resolvido (ainda não procurei muito a solução).
 
Back
Topo