Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Come verificare variabili del batch da una Sub

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Come verificare variabili del batch da una Sub

Postdi filippo.spinnato » 05/05/10 11:54

Buongiorno,
chiedo, gentilmente, aiuto per risolvere un problema in un programma batch DOS.
Vorrei testare una serie di Variabili, definite a livello main, da un Sub.
Le variabili sono denominate tipo Var01, Var02... Varnn, tramite un ciclo For passo il valore del contatore
a MiaSub, da dove vorrei testare le suddette variabili. Il seguente codice forse è più esplicativo:
Codice: Seleziona tutto
@ECHO OFF
SET Var01="Y"
SET Var02="N"
SET Var03="Y"
SET Var04="Y"
SET Var05="N"
rem...
rem SET Varnn="Y"

for /l %%a in (1, 1, 5) do ( CALL :MiaSub %%a )
GOTO EOF

:MiaSub
REM Uso una variabile per accodare il contatore al digit 0
SET IDX=0%1%

REM Prendo gli ultimi due caratteri a destra della variabile, per ottenere 01, 02, ...
SET IDX=%IDX:~-2%

REM Compongo il nome del file
SET FileInp=Seq%IDX%
echo fileInp: %FileInp%

REM test variabile Varnn; [b]come posso riferenziare le Var01... Var05  del main?[/b]
if Var%IDX%=="Y" ( Echo Var%IDX% = Y )
if Var%IDX%=="N" ( Echo Var%IDX% = N )
EXIT /b 0
Ringrazio quanti mi dedicheranno un pò del loro tempo prezioso!
Filippo
Filippo53
filippo.spinnato
Utente Junior
 
Post: 10
Iscritto il: 11/03/10 12:54

Sponsor
 

Postdi antoo69 » 05/05/10 13:23

mi sembra più un argomento per la sezione Programmazione, quindi sposto.
dai un pesce ad un uomo e lo sfamerai per un giorno.
insegna ad un uomo a pescare e lo sfamerai per tutta la vita.

Dell Alienware M17x
Avatar utente
antoo69
Moderatore
 
Post: 2106
Iscritto il: 28/04/09 16:40
Località: PARMA

Postdi archimede » 05/05/10 20:10

Codice: Seleziona tutto
@ECHO OFF
setlocal enabledelayedexpansion
SET Var01="Y"
SET Var02="N"
SET Var03="Y"
SET Var04="Y"
SET Var05="N"
rem...
rem SET Varnn="Y"

for /l %%a in (1, 1, 5) do ( CALL :MiaSub %%a )
GOTO:EOF

:MiaSub
REM Uso una variabile per accodare il contatore al digit 0
SET IDX=0%1%

REM Prendo gli ultimi due caratteri a destra della variabile, per ottenere 01, 02, ...
SET IDX=%IDX:~-2%

REM Compongo il nome del file
SET FileInp=Seq%IDX%
echo fileInp: %FileInp%

SET TMP=!VAR%IDX%!
ECHO %TMP%
EXIT /b 0
HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi filippo.spinnato » 06/05/10 16:57

Grazie Alessandro per la tua risposta,
con le due istruzioni suggerite in aggiunta:
SET TMP=!VAR%IDX%!
ECHO %TMP%
la variabile %TMP% NON restituisce il valore contenuto nella variabile , ovvero "Y" o "N" , ma semplicemente il nome !Var01! , !Var02! ecc. ecc
Quello che vorrei fare in MiaSub è:
ad ogni valore dell'indice IDX, 01, 02... passato a MiaSub , testare la corrispondente variabile Var01, var02...del codice chiamante e decidere cosa fare in base al valore, "Y" o "N" , in essa contenuto.

E' possibile fare ciò in un batch DOS?

GRAZIE
Filippo
Filippo53
filippo.spinnato
Utente Junior
 
Post: 10
Iscritto il: 11/03/10 12:54

Postdi archimede » 06/05/10 17:06

filippo.spinnato ha scritto:con le due istruzioni suggerite in aggiunta:
SET TMP=!VAR%IDX%!
ECHO %TMP%
la variabile %TMP% NON restituisce il valore contenuto nella variabile , ovvero "Y" o "N"
Ti sei perso un pezzo, controlla meglio (suggerimento: guarda tra le prime righe).

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi filippo.spinnato » 07/05/10 07:44

Buongiorno Alessandro,
ti chiedo scusa per la svista, pensavo di non essermi spiegato bene.., e ti RINGRAZIO per il suggerimento.
Come dice un vecchio proverbio "dai un pesce.... " , puoi suggerimi un libro, in italiano, da cui impare a ..."pescare"?
:)
GRAZIE 1000000!
Filippo
Filippo53
filippo.spinnato
Utente Junior
 
Post: 10
Iscritto il: 11/03/10 12:54

Postdi archimede » 07/05/10 08:38

archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Programmazione


Topic correlati a "Come verificare variabili del batch da una Sub":


Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti