|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
18-06-2014, 09.21.15 | #1 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Programmazione in batch
Il mio capo mi ha chiesto di fare una mini applicazione in batch, ma è un ambiente a me sconosciuto. mi servirebbe una mano. Vi spiego cosa devo fare; questa è la sintassi fissa che io dovrei tenere: DIGIWTCP WR 8 192.168.60.173 type result PAUSE ora io voglio che dopo il comando DIGIWTCP (che è invariabile) mi escano delle opzioni per il secondo campo (in questo caso WR) disponibili tra [WR , RD ecc..] anche il terzo campo deve essere richiesto fatto con una lista del tipo: 1 - extract1 2 - extract2 3 - extract3 ecc.. (la dicitura extract è solo un rifermento di testo) ed infine richiedere l'ip. type result e PAUSE sono anch'essi invariabili. Mi riuscite ad indirizzare sui comandi e sintassi da utilizzare?? Grazie mille |
18-06-2014, 10.45.55 | #2 |
Gold Member
WT Expert
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
|
Rif: Programmazione in batch
L'approccio non è molto diverso da quello della programmazione procedurale.
Esegui il comando (nome del file batch) seguito dagli argomenti. Gli argomenti diventano parametri memorizzati nelle variabili %1, %2, ecc... Con quelle variabili fai poi quello che vuoi, entro i limiti dei comandi del prompt, ovviamente. Se preferisci, puoi far inserire a mano i dati in modo più tradizionale con il comando SET /P <NOME_VARIABILE>=<testo_descrittivo> o con il comando CHOICE. Per richiamare i parametri e variabili in un ciclo, ricorda che nei file batch ci vuole la doppia percentuale (es: %%i). Piccola guida.
___________________________________
La risposta è dentro di te... e però, è sbagliata! |
18-06-2014, 11.30.28 | #3 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Programmazione in batch
Schema di base per menu di scelta:
Codice:
@Echo off Cls If "%1%" equ "" Echo Non hai specificato nemmeno un parametro :Menu Echo Menu opzioni Echo ========================== Echo 1 - Scelta 1 Echo 2 - Scelta 2 Echo 3 - Scelta 3 Echo ========================== Set /p Scelta=Fai la tua scelta, oppure premi INVIO per uscire:||Goto:EOF Echo.&Call:Menu_%Scelta% Goto:Menu :Menu_1 Echo Scelta %Scelta% If %Scelta% equ 2 Echo Hai fatto la scelta sbagliata Goto:Fine :Menu_2 Echo Scelta %Scelta% If %Scelta% equ 2 Echo Hai fatto la scelta giusta Goto:Fine :Menu_3 Echo Scelta %Scelta% If %Scelta% equ 3 ( Echo Hai fatto la scelta sbagliata Echo Devi scegliere la 2 ) :Fine Pause
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
20-06-2014, 11.20.15 | #4 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Rif: Programmazione in batch
tra varie cose sono riuscito a a fare qualcosa simile a quello che mi serve in modo semplice.
del reportscale.txt set IP=192.168.1.223 set mode=RD DIGIWTCP %mode% 39 %IP% type result >> reportscale.txt DIGIWTCP %mode% 40 %IP% type result >> reportscale.txt @echo off start reportscale.txt start SM192.168.1.223F37.DAT start SM192.168.1.223F38.DAT PAUSE mi rendo conto che è molto spartano e ne lontanamente paragonabile ad una programmazione seria, e quindi io ora dovrei ottimizzarlo, ma questo già mi consente di velocizzare un po' il lavoro richiesto. ora cercherò di lavorare su una maschera e successivamente mi occorrerà che una volta che inserisco (in un campo di input)le funzioni che mi occorreranno (nell' es. 39 e 40) mi avvii il comando dedicato, ed un campo editabile dove possa inserire l'ip, ed un altro campo editabile dove inserire la modalità (WR,RD ecc..) ed il 50% del programma sarà finito l'ulteriore 50% non so dove mettere mano e ne tanto meno so se si può fare. come avete capito il comando DIGIWTCP %mode% 39 %IP% s'interfaccia con un exe che mi produce file DAT con contenuto HEX (apribile tranquillamente con un notepad). Ora io vorrei che una volta prodotto il file uno script debba eliminare gli ultimi 2 caratteri e salvarlo. si può fare? |
20-06-2014, 11.44.29 | #5 | |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Programmazione in batch
Quota:
Cerca su google: "batch remove chars from file" Ti renderai conto che powershell in windows è cio che più si avvicina a bash in Unix. start reportscale.txt ?
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
|
20-06-2014, 11.58.58 | #6 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Rif: Programmazione in batch
si l'ho chiamato così, qualche curiosità?
|
20-06-2014, 12.10.12 | #7 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Programmazione in batch
Non era sul nome scelto.
Era sulla direttiva start. Quello che vuoi ottenere è l'apertura del file .txt a schermo all'interno di un editor testuale ?
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
20-06-2014, 12.10.50 | #8 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Rif: Programmazione in batch
si ho notato, posso anche levare start
|
20-06-2014, 12.24.21 | #9 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Programmazione in batch
Ti do una dritta per crearti un manuale con l'utilizzo del redirect output ">" oppure ">>"
Aggiungi /? a cmd -> guarda cosa esce fuori. Aggiungi /? ad ogni comando di cui tu non conosci la sintassi, es: echo /? if /? for /? set /? type /? Se provieni dal mondo Unix, ti saranno più congeniali man comando e comando -h[--h].
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
30-06-2014, 17.49.42 | #10 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Rif: Programmazione in batch
grazie per le dritte, il programma è quasi finito.
ma mi manca l'ultima cosa. dovrei eliminare gli ultimi 2 caratteri all'interno del file creato .DAT (come se fosse un txt) ho cercato anche su internet ma non sono riuscito a trovare comandi esaustivi. Potete darmi un'ultima dritta? Ricapitolando dovrei eliminare gli ultimi 2 caratteri all'interno del file prodotto con la seguente sintassi SM%IP2%F%F2%.DAT i caratteri da eliminare sono sempre E2, solo che si ripetono anche nel documento e non devono essere cancellati, ma solo E2 finale spero di essere stato abbastanza chiaro e nuovamente grazie mille del supporto |
01-07-2014, 15.11.13 | #11 |
Gold Member
WT Expert
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
|
Rif: Programmazione in batch
Ti scarichi sed da qui: http://unxutils.sourceforge.net/, lo aggiungi in %systemroot%, poi semplicemente:
sed -i "$s/..$//" tuofile ottieni cio che chiedi. Grazie al porting puoi ampliare le funzionalità di Windows da riga di comando, facendo uso di utilities nate in altro ambiente. ==== Ci sarebbe un altro metodo che necessita di una maggior elucubrazione mentale e che, in via teorica, potrebbe evitarti di scaricare sed: La direttiva Echo può anche interpretare dei caratteri speciali, come ad esempio il bell (codice ASCII 7), ossia lo speaker del PC. Dando un'occhiata qua: http://www.asciitable.com/, digitando Ctrl+G dal prompt e poi dando invio, l'interprete eseguirebbe il classico beep. Bada bene che scrivere ^G e digitare Ctrl+G non è la stessa cosa. Supponendo, quindi, di scrivere un .bat semplice dal contenuto seguente: @echo 123 4 una volta eseguito, cio che l'interprete restituirebbe non sarebbe altro che la stringa "123 4" senza doppi apici. Se con un editor esadecimale, al posto dell'unico spazio (codice ASCII 20 in hex), tu immettessi il valore 08 (corrispondente a backspace), l'interpete scriverebbe 123, poi sposterebbe il cursore di una posizione indietro ed infine scriverebbe 4; Di fatto, sostituirebbe il 3 col carattere successivo al backspace, ossia 124. Se invece di un solo backspace, tu ne utilizzassi due ... Se riuscissi ad utilizzare il doppio ">>" che viene interpretato come aggiunta ad un file già presente (cioè ponendosi in coda al contenuto) in accordo con i caratteri speciali, potresti sostituire l'ultimo carattere con il terminatore nullo di stringa, ossia il null.
___________________________________
Practice feeds Skill,Skill limits Failure,Failure enhances Security,Security needs Practice |
04-07-2014, 18.04.25 | #12 |
Newbie
Registrato: 18-06-2014
Messaggi: 6
|
Rif: Programmazione in batch
LoryOne grazie mille, va benissimo con sed.
Topic Risolto |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Batch Picture Protector 4.0 (con licenza) | WinTricks | News SOFTWARE | 2 | 15-06-2013 11.37.03 |
Help: script o batch per automatizzare..... | TNOTB | Programmazione | 3 | 20-10-2008 09.19.28 |
Linguaggio Programmazione per Principianti... | isciem | Programmazione | 1 | 14-08-2008 15.29.08 |
Batch Icon Extractor 1.0 | Thor | Archivio News Software | 1 | 15-09-2005 17.38.36 |
Help!! Creazione File Batch | Nottedisperanza | Programmazione | 2 | 13-12-2004 01.02.13 |