Risultati da 1 a 10 di 10

Discussione: Semplice domanda per un .bat

  1. #1
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito Semplice domanda per un .bat

    Ragazzi sto preparando un .bat per mio fratello che fa questa operazione:
    prende un file .dat che attraverso un .exe verrà decodificato in output leggibile tramite notepad.
    la stringa che scrivo nel .bat (che tengo nella directory dove sono presenti le vari sorgenti .dat) è :

    Codice:
    cod.exe 880623_A.dat out1.txt
    dove
    cod.exe è l'eseguibile
    880623_A.dat è il file dat da decifare
    out1.txt è l'output

    Poichè i .dat sono parecchi ma hanno una numerazione progressiva (c'è 880623_A.dat poi 880623_B.dat e poi cambia il "giorno" cioè si passa a 880624_A.dat poi 880624_B.dat e così via fino a fine mese cioè 30 o 31) potrei nel bat ricopiare la stringa e modificare a mano a mano i vari sorgente e output relativa ad esso.........ma è lungo e scomodo...
    C'è un modo per inserire nel .bat un controllo che modifichi a mano a mano giorno (1-31) e lettera (A-B) e ad ogni sorgente distinta faccia uscire un output distinto?

    Un comando molto simile che voglio intender è il for che però si usa per C.
    Si può fare? Grazie dell'help
    Ultima modifica di Computerboy; 08-10-2008 alle 19:58



  2. #2
    L'avatar di Lomion
    Title
    Esperto
    Data Registrazione
    Dec 2007
    Età
    36
    Messaggi
    1,396

    Predefinito

    Ciao!

    Puoi usare il comando "for" di DOS per fare quello che ti interessa:

    Windows 2000 and XP syntax
    Runs a specified command for each file in a set of files.
    FOR %variable IN (set) DO command [command-parameters]

    %variable Specifies a replaceable parameter.
    (set) Specifies a set of one or more files. Wildcards may be used.
    command Specifies the command to carry out for each file. command-parameters Specifies parameters or switches for the specified command.

    In pratica fai due for uno dentro l'altro dove il primo ti cambia la lettera e il secondo il numero. li infili nel bat e lo esegui.
    Tutto sulla stessa riga
    E adesso aspetterò domani per avere nostalgia
    signora libertà signorina anarchia
    così preziosa come il vino così gratis come la tristezza, con la tua nuvola di dubbi e di bellezza.

  3. #3
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Ottimo
    Allora per il comando for c'è anche l'help di MS-DOS che si avvia tramite for /?

    Per ora sono arrivato a scrivere una stringa del tipo (con il prezioso aiuto di Lomion ):
    Codice:
    for /L %%i IN (26,1,28) DO for %%j IN ("A";"B";"C") DO cod.exe 8809%%i_%%j.DAT %%i_%%j.txt
    che racchiude tutti i giorni da 26 a 28 e per ognuno di essi le lettere A,B,C.
    Tuttavia questa sintassi sputa fuori output .txt fasulli in corrispondenza di .dat non esistenti........vedrò di migliorarla in qualche modo...
    Ultima modifica di Computerboy; 09-10-2008 alle 09:07



  4. #4
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Stamattina ho messo anche la condizione IF EXIST se il file. dat esiste o meno:
    la sintassi tipo è questa " IF EXIST filename. (del filename.) ELSE echo filename. missing "

    Il comando .bat che è scritto è stato questo:
    Codice:
    for /L %%i IN (1,1,31) DO for %%j IN ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O") DO IF EXIST 8809%%i_%%j.DAT. cod.exe 8809%%i_%%j.DAT 8809%%i_%%j.txt
    cioè per i giorni da 1 a 31 e per alcune delle lettere dell'alfabeto
    Ovviamente è un ciclo molto "largo" ma tanto per i dati che non trova non esce nessun output quindi va bene così



  5. #5
    L'avatar di Lomion
    Title
    Esperto
    Data Registrazione
    Dec 2007
    Età
    36
    Messaggi
    1,396

    Predefinito

    Sono contento che ce tu ce l'abbia fatta
    Se non hai altri problemi o "avanzamenti" chiuderei...
    E adesso aspetterò domani per avere nostalgia
    signora libertà signorina anarchia
    così preziosa come il vino così gratis come la tristezza, con la tua nuvola di dubbi e di bellezza.

  6. #6
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Citazione Originariamente Scritto da Lomion Visualizza Messaggio
    Sono contento che ce tu ce l'abbia fatta
    Se non hai altri problemi o "avanzamenti" chiuderei...
    Ehi il tuo aiuto è stato grandioso....
    Penso che qualche upgrade lo posso ancora implementare, sto vedendo di mettere un ciclo for per anche per i mesi e anche qualche cosa da visualizzare a schermo (dovrò usare echo suppongo)
    Se ci sono miglioramenti li posterò



  7. #7
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Aggiornamento:
    Codice:
    for /L %%m IN (0,1,1) DO for /L %%n IN (0,1,9) DO for /L %%i IN (0,1,3) DO for /L %%k IN (0,1,9) DO 
    for %%j IN ("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z") DO 
    IF EXIST 88%%m%%n%%i%%k_%%j.DAT. cod.exe 88%%m%%n%%i%%k_%%j.DAT 88%%m%%n%%i%%k_%%j.txt
    Il programma di prima aveva un bug. Dato che lo strumento non scrive come nome dei file sorgente il 9 settembre come 99 ma 0909 quindi per un anno fisso ci sono volute ben quattro diverse variabili.
    Non penso di voler inserire un ciclo for per gli anni perchè il programma deve eseguire già molti controlli così, e il processo è non così istantaneo
    Vedrò di inserire qualche scritta a schermo e poi rilascerò la prima versione beta



  8. #8
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Raga sembra che la versione fatta sia stabile e per ora ha dato risultati sempre corretti
    L'unica cosa è: mi hanno chiesto se per due o più txt relativi allo stesso giorno (esempio: 880909_A e 880909_B) si può creare un txt solo che contenga il primo e il secondo in coda......
    La vedo impossibile usando dos



  9. #9
    L'avatar di Lomion
    Title
    Esperto
    Data Registrazione
    Dec 2007
    Età
    36
    Messaggi
    1,396

    Predefinito

    A questo punto penso venga più facile usare bash o fare un programmino ad-hoc
    E adesso aspetterò domani per avere nostalgia
    signora libertà signorina anarchia
    così preziosa come il vino così gratis come la tristezza, con la tua nuvola di dubbi e di bellezza.

  10. #10
    L'avatar di Computerboy
    Title
    Pro
    Data Registrazione
    Dec 2007
    Età
    32
    Messaggi
    2,750

    Predefinito

    Citazione Originariamente Scritto da Lomion Visualizza Messaggio
    A questo punto penso venga più facile usare bash o fare un programmino ad-hoc
    penso che mi butterò su fortran visto che altri lavori del prof sono stati fatti su quello.......
    Però non so niente di sintassi, toccherà studiarmelo affondo
    Puoi chiudere Lomion dai



Discussioni Simili

  1. domanda per Asus P5K-SE
    Di LowSlow nel forum Schede Madri & Ram
    Risposte: 12
    Ultimo Messaggio: 28-08-2008, 13:12
  2. Cellulare semplice ed economico: HELP!!
    Di adexxx88 nel forum Telefonia e Palmari
    Risposte: 7
    Ultimo Messaggio: 11-08-2008, 20:46
  3. Domanda su antivirus FREE
    Di Pickwick85 nel forum Virus & Sicurezza
    Risposte: 11
    Ultimo Messaggio: 28-05-2008, 16:11
  4. Domanda sulla rete Wireless
    Di djpeppe18 nel forum Network & Connessioni
    Risposte: 5
    Ultimo Messaggio: 02-05-2008, 08:46

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •