1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda com batch

Discussão em 'Programação' iniciada por silversk8ter, 26 de Fevereiro de 2009. (Respostas: 4; Visualizações: 803)

  1. silversk8ter

    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: 26 de Fevereiro de 2009
  2. WindWalker

    WindWalker Power Member

    Up.

    Interessado em algo semelhante.
     
  3. silversk8ter

    silversk8ter I folded Myself


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

    Já consegui quase o que queria...
    Mais logo ponho aqui o q tenho para nos darem alguma ajuda, se possivel.

    :kfold:
     
  4. silversk8ter

    silversk8ter I folded Myself

    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.
     
  5. WindWalker

    WindWalker Power Member

    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).
     

Partilhar esta Página