Telefonino.net network
 
| 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 » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 18-06-2014, 09.21.15   #1
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
Programmazione in batch

Ciao Ragazzi,

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
NRG_Extreme non è collegato   Rispondi citando
Vecchio 18-06-2014, 10.45.55   #2
borgata
Gold Member
WT Expert
 
L'avatar di borgata
 
Registrato: 23-06-2004
Loc.: Cagliari
Messaggi: 13.333
borgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raroborgata è un gioiello raro
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!
borgata non è collegato   Rispondi citando
Vecchio 18-06-2014, 11.30.28   #3
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
LoryOne non è collegato   Rispondi citando
Vecchio 20-06-2014, 11.20.15   #4
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
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?
NRG_Extreme non è collegato   Rispondi citando
Vecchio 20-06-2014, 11.44.29   #5
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Rif: Programmazione in batch

Quota:
Inviato da NRG_Extreme Visualizza messaggio
...
Ora io vorrei che una volta prodotto il file uno script debba eliminare gli ultimi 2 caratteri e salvarlo.

si può fare?
Hai tutto il necessario tra la guida proposta da borgata e lo scriptino del menu.
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
LoryOne non è collegato   Rispondi citando
Vecchio 20-06-2014, 11.58.58   #6
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
Rif: Programmazione in batch

si l'ho chiamato così, qualche curiosità?
NRG_Extreme non è collegato   Rispondi citando
Vecchio 20-06-2014, 12.10.12   #7
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
LoryOne non è collegato   Rispondi citando
Vecchio 20-06-2014, 12.10.50   #8
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
Rif: Programmazione in batch

si ho notato, posso anche levare start
NRG_Extreme non è collegato   Rispondi citando
Vecchio 20-06-2014, 12.24.21   #9
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
LoryOne non è collegato   Rispondi citando
Vecchio 30-06-2014, 17.49.42   #10
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
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
NRG_Extreme non è collegato   Rispondi citando
Vecchio 01-07-2014, 15.11.13   #11
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
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
LoryOne non è collegato   Rispondi citando
Vecchio 04-07-2014, 18.04.25   #12
NRG_Extreme
Newbie
 
Registrato: 18-06-2014
Messaggi: 6
NRG_Extreme promette bene
Rif: Programmazione in batch

LoryOne grazie mille, va benissimo con sed.

Topic Risolto
NRG_Extreme non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

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

Orario GMT +2. Ora sono le: 18.15.55.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.