Discussione:
Dos e variabili...
(troppo vecchio per rispondere)
Andrew Next
2005-04-20 10:36:15 UTC
Permalink
...spero di ricordare male.

Variabili in un file dos sono:
variabili di ambiente (definite in autoexec.bat)
parametri (definite al lancio)

e basta?
Cioe' per avere la variabile che contiene il valore "pippo" in "pluto.bat"
devo dichiarare

pluto.bat pippo

e nello script tutte le volte che digito %1 mi ritrovo con pippo tra i
piedi?

Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?

Mi sento male
A<
Giovanni
2005-04-20 11:41:08 UTC
Permalink
Post by Andrew Next
Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?
Devi scrivere %miavariabile%

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 <http://counter.li.org/>
Andrew Next
2005-04-20 12:43:09 UTC
Permalink
Post by Giovanni
Post by Andrew Next
Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?
Devi scrivere %miavariabile%
Ahemm... il comando SET e' solo per le variabili di ambiente e SETLOCAL con
quella sintassi non va.

Cmq per ora ho risolto in un altro modo:

miofile.bat %date%; %time%

e dentro miofile.bat uso %1 e %2, rozzo, ma efficace.
Post by Giovanni
A<
3st3b4n
2005-04-20 13:33:44 UTC
Permalink
Post by Andrew Next
Post by Giovanni
Post by Andrew Next
Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?
Devi scrivere %miavariabile%
Ahemm... il comando SET e' solo per le variabili di ambiente e
SETLOCAL con quella sintassi non va.
miofile.bat %date%; %time%
e dentro miofile.bat uso %1 e %2, rozzo, ma efficace.
Se per leggibilità del batch vuoi usare dei nomi di variabile al posto di %1
e %2 nessuno ti vieta, nel bat, a scrivere:

Set Data=%1
Set Ora=%2

e poi usare %Data% e %Ora% al posto di %1 e %2

SETLOCAL serve, all'interno di un file batch, a localizzare i cambiamenti
alle variabili d'ambiente. Per tornare alla situazione precedente usa
ENDLOCAL.
Esempio:

SET Var1=Pippo
SETLOCAL
SET Var1=Topolino
REM La prossima istruzione visualizza Topolino sullo schermo
ECHO %Var1%
ENDLOCAL
REM La prossima istruzione visualizza Pippo sullo schermo
ECHO %Var1%
--
3st3b4n
www.seber.it

Questo post è stato scritto con bit riciclati
Giovanni
2005-04-20 14:01:14 UTC
Permalink
Post by 3st3b4n
Post by Andrew Next
Post by Giovanni
Post by Andrew Next
Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?
Devi scrivere %miavariabile%
Ahemm... il comando SET e' solo per le variabili di ambiente e
SETLOCAL con quella sintassi non va.
miofile.bat %date%; %time%
e dentro miofile.bat uso %1 e %2, rozzo, ma efficace.
Se per leggibilità del batch vuoi usare dei nomi di variabile al posto di %1
Set Data=%1
Set Ora=%2
e poi usare %Data% e %Ora% al posto di %1 e %2
SETLOCAL serve, all'interno di un file batch, a localizzare i cambiamenti
alle variabili d'ambiente. Per tornare alla situazione precedente usa
ENDLOCAL.
SET Var1=Pippo
SETLOCAL
SET Var1=Topolino
REM La prossima istruzione visualizza Topolino sullo schermo
ECHO %Var1%
ENDLOCAL
REM La prossima istruzione visualizza Pippo sullo schermo
ECHO %Var1%
Quale DOS ha questa sintassi?

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 <http://counter.li.org/>
3st3b4n
2005-04-20 14:15:40 UTC
Permalink
Post by Giovanni
Post by 3st3b4n
Post by Andrew Next
Ahemm... il comando SET e' solo per le variabili di ambiente e
SETLOCAL con quella sintassi non va.
SETLOCAL serve, all'interno di un file batch, a localizzare i
cambiamenti alle variabili d'ambiente. Per tornare alla situazione
precedente usa ENDLOCAL.
SET Var1=Pippo
SETLOCAL
SET Var1=Topolino
REM La prossima istruzione visualizza Topolino sullo schermo
ECHO %Var1%
ENDLOCAL
REM La prossima istruzione visualizza Pippo sullo schermo
ECHO %Var1%
Quale DOS ha questa sintassi?
Per quanto riguarda SETLOCAL e ENDLOCAL, citati da Andrew, sicuramente il
"DOS" di Windows NT, Windows 2000 e Windows XP. Il resto è puro MS-DOS.
--
3st3b4n
www.seber.it

Questo post è stato scritto con bit riciclati
Giovanni
2005-04-20 15:01:15 UTC
Permalink
Post by 3st3b4n
Per quanto riguarda SETLOCAL e ENDLOCAL, citati da Andrew, sicuramente il
"DOS" di Windows NT, Windows 2000 e Windows XP. Il resto è puro MS-DOS.
Grazie. Dopo Win95 non ho piu` molta pratica.

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
Registered Linux user #337974 <http://counter.li.org/>
Andrew Next
2005-04-21 09:59:15 UTC
Permalink
Post by 3st3b4n
Post by Andrew Next
Post by Giovanni
Post by Andrew Next
Non posso scrivere una
SET miavariabile = qualcosa
e sperare di avere qualcosa quando scrivo %miavariabile ?
Devi scrivere %miavariabile%
Ahemm... il comando SET e' solo per le variabili di ambiente e
SETLOCAL con quella sintassi non va.
miofile.bat %date%; %time%
e dentro miofile.bat uso %1 e %2, rozzo, ma efficace.
Se per leggibilità del batch vuoi usare dei nomi di variabile al posto di
Set Data=%1
Set Ora=%2
e poi usare %Data% e %Ora% al posto di %1 e %2
SETLOCAL serve, all'interno di un file batch, a localizzare i cambiamenti
alle variabili d'ambiente. Per tornare alla situazione precedente usa
ENDLOCAL.
SET Var1=Pippo
SETLOCAL
SET Var1=Topolino
REM La prossima istruzione visualizza Topolino sullo schermo
ECHO %Var1%
ENDLOCAL
REM La prossima istruzione visualizza Pippo sullo schermo
ECHO %Var1%
Grazie, ora funziona...

...e cosi' ho potuto schiantarmi contro un altro problema: la data.

Pensavo bastasse cambiarne il formato nel pannello di controllo, ma...

tanto
echo %date%
quanto
date /t

mi restituiscono una data nel formato

ggg gg-mm-aaaa

e non c'e' verso di cambiarla, l'unica cosa che riesco a cambiare e' il
separatore di data, ma solo se lo inserisco nell'apposito campo. Se modifico
il formato della data (da gg/mm/aaaa in gg-mm-aaaa) il comando date /t (e
echo %date%) mi restituisce comunque ggg gg/mm/aaaa

insomma... uno vero spasso.
Post by 3st3b4n
A<
3st3b4n
2005-04-21 13:18:57 UTC
Permalink
Post by Andrew Next
Grazie, ora funziona...
...e cosi' ho potuto schiantarmi contro un altro problema: la data.
Pensavo bastasse cambiarne il formato nel pannello di controllo, ma...
tanto
echo %date%
quanto
date /t
mi restituiscono una data nel formato
ggg gg-mm-aaaa
e non c'e' verso di cambiarla, l'unica cosa che riesco a cambiare e'
il separatore di data, ma solo se lo inserisco nell'apposito campo.
Se modifico il formato della data (da gg/mm/aaaa in gg-mm-aaaa) il
comando date /t (e echo %date%) mi restituisce comunque ggg gg/mm/aaaa
Se a quanto pare usi Windows 2000 (visto il post precedente), allora puoi
usare il comando set per estrarre dalla data le informazioni che ti servono:

set Data=%date:~-4%%date:~-7,2%%date:~-10,2%
set Ora=%time:~0,2%%time:~3,2%%time:~6,2%

%Data% contiene la data nel formato aaaammgg
%Ora% contiene l'ora nel formato hhmmss
--
3st3b4n
www.seber.it

Questo post è stato scritto con bit riciclati
Andrew Next
2005-04-21 14:47:13 UTC
Permalink
Post by 3st3b4n
Post by Andrew Next
Grazie, ora funziona...
...e cosi' ho potuto schiantarmi contro un altro problema: la data.
Pensavo bastasse cambiarne il formato nel pannello di controllo, ma...
tanto
echo %date%
quanto
date /t
mi restituiscono una data nel formato
ggg gg-mm-aaaa
e non c'e' verso di cambiarla, l'unica cosa che riesco a cambiare e'
il separatore di data, ma solo se lo inserisco nell'apposito campo.
Se modifico il formato della data (da gg/mm/aaaa in gg-mm-aaaa) il
comando date /t (e echo %date%) mi restituisce comunque ggg gg/mm/aaaa
Se a quanto pare usi Windows 2000 (visto il post precedente), allora puoi
set Data=%date:~-4%%date:~-7,2%%date:~-10,2%
set Ora=%time:~0,2%%time:~3,2%%time:~6,2%
%Data% contiene la data nel formato aaaammgg
%Ora% contiene l'ora nel formato hhmmss
HALT!

Funziona, meraviglioso, anzi Wunderbar! (come direbbe il papa) e...
...da quello che capisco di questi comandi si dividono in
%date:~-4% (4 caratteri della data aaaa)
%date:~-7,2% (dal carattere 7 da destra prende i caratteri 7 e 8)
%date:~-10,2% (dal carattere 10 prende 10 e 11 )
il segno - indica che si comincia a contare i caratteri da destra, quindi -4
sono i primi 4 caratteri partendo da destra e -7,2 vuol dire conta 7
caratteri da destra e... insomma ho capito come funziona, ma... come fai a
sapere 'sta cosa? Ho cercato in lungo e in largo sul sito microsoft,
sicuramente le parole sbagliate (script, file batch syntax ecc...), ma non
ho trovato nulla.

Comunque grazie ^____^
Post by 3st3b4n
A<
3st3b4n
2005-04-21 16:09:36 UTC
Permalink
Post by Andrew Next
Post by 3st3b4n
Se a quanto pare usi Windows 2000 (visto il post precedente), allora
puoi usare il comando set per estrarre dalla data le informazioni
set Data=%date:~-4%%date:~-7,2%%date:~-10,2%
set Ora=%time:~0,2%%time:~3,2%%time:~6,2%
%Data% contiene la data nel formato aaaammgg
%Ora% contiene l'ora nel formato hhmmss
HALT!
Funziona, meraviglioso, anzi Wunderbar! (come direbbe il papa) e...
...da quello che capisco di questi comandi si dividono in
%date:~-4% (4 caratteri della data aaaa)
%date:~-7,2% (dal carattere 7 da destra prende i caratteri 7 e 8)
%date:~-10,2% (dal carattere 10 prende 10 e 11 )
il segno - indica che si comincia a contare i caratteri da destra,
quindi -4 sono i primi 4 caratteri partendo da destra e -7,2 vuol
dire conta 7 caratteri da destra e... insomma ho capito come
funziona, ma... come fai a sapere 'sta cosa? Ho cercato in lungo e in
largo sul sito microsoft, sicuramente le parole sbagliate (script,
file batch syntax ecc...), ma non ho trovato nulla.
Uso molto i batch sotto Windows NT, 2000 e XP e leggo la guida di Windows a
proposito dei comandi DOS.
--
3st3b4n
www.seber.it

Questo post è stato scritto con bit riciclati
Andrew Next
2005-04-22 06:42:55 UTC
Permalink
Post by 3st3b4n
Post by Andrew Next
Post by 3st3b4n
Se a quanto pare usi Windows 2000 (visto il post precedente), allora
puoi usare il comando set per estrarre dalla data le informazioni
set Data=%date:~-4%%date:~-7,2%%date:~-10,2%
set Ora=%time:~0,2%%time:~3,2%%time:~6,2%
%Data% contiene la data nel formato aaaammgg
%Ora% contiene l'ora nel formato hhmmss
HALT!
Funziona, meraviglioso, anzi Wunderbar! (come direbbe il papa) e...
...da quello che capisco di questi comandi si dividono in
%date:~-4% (4 caratteri della data aaaa)
%date:~-7,2% (dal carattere 7 da destra prende i caratteri 7 e 8)
%date:~-10,2% (dal carattere 10 prende 10 e 11 )
il segno - indica che si comincia a contare i caratteri da destra,
quindi -4 sono i primi 4 caratteri partendo da destra e -7,2 vuol
dire conta 7 caratteri da destra e... insomma ho capito come
funziona, ma... come fai a sapere 'sta cosa? Ho cercato in lungo e in
largo sul sito microsoft, sicuramente le parole sbagliate (script,
file batch syntax ecc...), ma non ho trovato nulla.
Uso molto i batch sotto Windows NT, 2000 e XP e leggo la guida di Windows
a proposito dei comandi DOS.
Ecco la chiave, anzi le chiavi!
Dopo il tuo suggerimento ho googleggiato ancora, stavolta con queste chiavi
Guida Windows Comandi Batch

http://www.microsoft.com/windows2000/it/server/help/default.asp?url=/windows2000/it/server/help/ntcmds.htm

pure in italianto!

Evvai.
GraZie
Post by 3st3b4n
A<
3st3b4n
2005-04-22 08:35:21 UTC
Permalink
Post by Andrew Next
Dopo il tuo suggerimento ho googleggiato ancora, stavolta con queste
chiavi Guida Windows Comandi Batch
http://www.microsoft.com/windows2000/it/server/help/default.asp?url=/windows2000/it/server/help/ntcmds.htm
Guarda che non serviva googleggiare tanto, le stesse informazioni le trovi
sulla guida di Windows 2000!
--
3st3b4n
www.seber.it

Questo post è stato scritto con bit riciclati
Andrew Next
2005-04-22 13:08:09 UTC
Permalink
Post by 3st3b4n
Post by Andrew Next
Dopo il tuo suggerimento ho googleggiato ancora, stavolta con queste
chiavi Guida Windows Comandi Batch
http://www.microsoft.com/windows2000/it/server/help/default.asp?url=/windows2000/it/server/help/ntcmds.htm
Guarda che non serviva googleggiare tanto, le stesse informazioni le trovi
sulla guida di Windows 2000!
Ahemm... premesso che non ho installato io il S.O. sui server, quando clicco
sull'icona della guida ricevo un bell'errore di "file non trovato" e la
documentazione cartacea riguarda solo l'installazione (peraltro errata) del
sistema operativo (sono dei compaq proliant M370, il S.O. e' in italiano, ma
lo script di installazione e' in inglese e alcuni componenti hanno il nome
sbagliato), ovviamente i CD di installazione sono in formato proprietario
compaq e l'applicazione che installa consente solo l'installazione, non
l'estrazione dei file.

Cmq ora funziona tutto, ho messo anche la data in un formato a me piu'
congeniale (gg-mm-aaaa) e ora sto giocherellando un po' con altri comandi.
Post by 3st3b4n
A<
Continua a leggere su narkive:
Loading...