Newsgroup: it.comp.os.win.xp
Titolo: INTERPRETE COMANDI

Passato da Win 98 a XP da poco non riesco a risolvere un banale
comando batch inserito alla partenza di Windows e quindi eseguito in
modo automatico (sullo stile dell'autoexec.bat di Win 98):
IF EXIST C:\PROVA.INF SET PROVA=C
sembra quasi che l'interprete dei comandi non "interpreti" il comando
IF oppure il comando SET.
Qualcuno ha gia' affrontato e risolto questo problema?
Wdb

 IF oppure il comando SET.
Non trovo il problema:
------
[C:\] type prova.bat
set prova=
echo prova(0): %prova%
if exist c:\prova.bat set prova=C
echo prova(1): %prova%
[C:\] prova.bat
[C:\] set prova=
[C:\] echo prova(0):
prova(0):
[C:\] if exist c:\prova.bat set prova=C
[C:\] echo prova(1): C
prova(1): C
[C:\]
------
Lou

 Non trovo il problema:
Oops: ho scritto un'evidente sciocchezza, visto che parlavi di 
AUTOEXEC.BAT
Probabilmente si tratta semplicemente di processi separati, che non 
ereditano le variabili di ambiente.
Non puoi lanciare la tua applicazione da un batch che setti le variabili 
d'environment necessarie?
Lou

 Lou
In effetti se creo un batch file e lo eseguo manualmente non ci sono
problemi: tutto fila liscio e tutto viene eseguito.
Ma se lo tratto come un AUTOEXEC.BAT le cose cambiano un pochino.
Premettendo che lo faccio eseguire impostandolo come un processo
automatico alla partenza di Windows XP, sembra non sentire comandi
tipo la "IF" oppure il "SET".
Prova a far lanciare il tuo script in automatico, come ti ho detto io,
alla partenza di Win XP, e ti accorgerai che nessuna variabile e'
stata settata (ad es. prova che dovrebbe contenere il carattere "C")
Wdb

 Wdb
Credo che questo avvenga perché XP li vede come 2 processi separati:
se tu fai partire in automatico all'accensione un file batch che ti imposta
la variabile Prova a C, poi apri il prompt di dos e lanci il comando SET,
probabilmente non vedrai la variabile Prova, questo perché il processo che
l'ha impostata č partito ed č stato chiuso immediatamente.
Credo che le impostazioni delle variabili di ambiente ora non risiedano piů
nell' Autoexec.bat ma siano state spostate in un altro file, ma purtroppo
adesso non ricordo il nome.
--------------------------------
Inviato via 
http://usenet.libero.it

 adesso non ricordo il nome.
Se si tratta d'impostazioni di sola assegnazione basta "Proprietà del 
sistema" | "Avanzate" | "Variabili d'ambiente", per condizionarlo ad 
altri eventi non saprei -- in ogni caso non vedo quale programma, che 
non possa essere lanciato da un batch file specifico, le necessiti
Lou

 Lou
Si, sono abbastanza d'accordo.
La comodita' pero' di poter impostare una variabile d'ambiente in modo
condizionato mi agevola, ad esempio e nel mio caso, nel venire a
conoscenza della presenza di un disco rimovibile sulla cui root e'
memorizzato un determinato file di individuazione.
A questo punto mi assegno una variabile d'ambiente (sempre la stessa
per tutti i computer dove posso inserire il disco rimovibile)
associandogli la lettera del drive in cui l'ho trovato e mi rintraccio
in modo completamente automatico i files di quel disco senza dover
conoscere a priori la lettera che lo contraddistingue, che per ovvi
motivi, da pc a pc, puo' essere diversa.
Ad. es:
IF EXIST D:\rimovibi.inf SET DRVRIM=D
IF EXIST E:\rimovibi.inf SET DRVRIM=E
IF EXIST F:\rimovibi.inf SET DRVRIM=F
al termine dello script iniziale, nella variabile %DRVRIM% ho la
lettera del drive iun cui ho inserito il disco rimovibile.
Wdb

 tipo la "IF" oppure il "SET".
Prova ad inserire i comandi nel file autoexec.nt che trovi in
%windir%\system32.
Ciao.

 Ciao.
Purtroppo l'ho gia' fatto ed e' come se non avessi fatto nulla.
Mi sa proprio che un comando batch di questo tipo (intendo
condizionato) in Win XP non si riesce ad eseguire, almeno alla
partenza.
Strano ma vero.
Wdb

 lettera del drive iun cui ho inserito il disco rimovibile.
Ok, nessun problema fin qui, ma ti serve davvero al boot?
Se un batch o applicativo secondario fa riferimento a quella variabile, 
non può allo stesso tempo cercare lui stesso, quando gli serve, quel 
file di riferimento sul supporto rimovibile?
Lou

 Lou
Si mi serve al boot e lo faccio per evitare in tutti gli script di
ripetere lo stesso test (o la stessa call).
Mi sembra molto piu' funzionale.
Comunque dovro' rinunciarci perche' non funzia :-(
Wdb