Newsgroup: it.comp.os.win.windows7
Titolo: non riesco a settare variabile d'ambiente da file batch

Ciao NG,
 
Sono veramente in un vicolo cieco e forse potete aiutarmi
voi. Ho messo su un serverino casalingo che però ha una
"partenza" complicata perché deve montare volumi true
crypt, condividerli eccetera. Ho scritto quindi due batch
ma siccome sono distratto, se anche ho visto che eseguendo
più volte on.bat e off.bat non succede niente, volevo
comunque agire da programmatore bravo e coscenzioso.
 
Quindi ho pensato di settare una variabile d'ambiente
quando parte on.bat, testando la condizione. Se la
variabile d'ambiente è "on" si salta alla fine. Lo stesso
per "off.bat".
 
Orbene, ho provato con tutte le sintassi di assegnazione
possibili ma la mia variabile di ambiente non viene mai
modificata dal momento in cui la inizializzo nel pannello
di controllo. Ho controllato con vari "pause" nel batch e
leggendo i valori con "set" in un'altra finestra DOS. Non
accade niente.
 
Ovviamente sono admin e ho tutti i privilegi. Cosa può mai
essere?
 
Grazie!
 
Apx.
 

 essere?
 
Ogni finestra dos è un ambiente separato, non comunicante ed autonomo che non va a modificare le variabili globali, puoi solo impostare variabili locali, quindi non puoi leggere le variabili locali di un ambiente da un altro ambiente.
 
Devi mettere la variabile che ti interessa in un file che poi vai a leggere.

 che poi vai a leggere.
 
capito... faccio prima a scrivere un programmino in C ma
giusto per curiosità, manco le variabili di sistema posso
creare e modificare da file batch?
 

 manco le variabili di sistema posso creare e modificare da file batch?
 
No. Come giustamente ti ha detto Simone, ogni batch parte in una "copia" 
del sistema "Dos" che vive solo durante l'esecuzione del batch stesso; 
tu puoi modificare solo il valore delle variabili d'ambiente di QUELLA 
copia, ma non del sistema intero.
Per modificare le variabili d'ambiente si deve intervenire in zone di 
memoria che di solito i sistemi da NT in poi non rendono accessibili ai 
programmi "user".. :-\
-- 
Luca Amicone

 non rendono accessibili ai programmi "user".. :-\
 
.... e per giunta mi attacco al tram. Ho visto la sintassi
per I/O da file nel linguaggio della shell di dos e va
oltre le mie capacità di comprensione, sembra quasi quel
che si vede sotto linux :D
 
Va be', starò attento a far partire e fermare il
serverino, non ho a quanto pare scelta. E grazie a tutti
delle risposte!
 

Archaeopteryx ha scritto:

In qualche resource kit (o era nelle sysinternals ?)
ci dovrebbe essere un'utility a nome SETX.EXE che lo
può fare con lo switch /S. Credo che su Win7 sia già
di default. Perlomeno, nel mio c'è :-), ma con tutta
la roba che ho installato non faccio testo...
 
Bye, G.

 essere un'utility a nome SETX.EXE che lo può fare con lo switch /S.
 
Bravo, grazie, sette più!!
http://technet.microsoft.com/it-it/library/cc755104%28v=ws.10%29.aspx
 
Che fico anche stasera ho imparato qualcosa..
-- 
Luca Amicone

 Che fico anche stasera ho imparato qualcosa..
 
Famo sei e mezzo, al massimo sette meno: lo switch era /m.
Comunque meglio di un'insufficienza :-).
Oh, attenzione alla "Nota 2"... tocca concatenare più file
batch, mi sa.
 
Bye, G.