Ciao, MICHELE!
Post by MICHELEHo osservato che è un banale problema di path cioè non sa cosa è
osql. se vado nella cartella dove si trova osql il comando funziona.
Se apro una qualsiasi sessione cmd da un certo momento in poi
dell'installazione del pacchetto il comando osql può essere lanciato
anche se mi trovo in c:\
Ma dalla sessione che mi interessa se lancio osql non fa nulla..
Di conseguenza devo precedere la riga del ripristino del db con una
riga che ripristina il path originale di windows.
Premetto che non so nulla di SQL e che per questo ti inviterei a postare la
richiesta anche nel ng dedicato a questa tecnologia:
microsoft.public.it.sql
Da quello che capisco e che contraddice il post originale, il path
all'utlility osql è assente prima dell'invocazione del comando.
Non lo troverai quindi nè nel registro nè altrove.
E' il tuo pacchetto che lo aggiunge in una fase successiva.
Sarebbe abbastanza banale aggiungere un percorso fisso al path prima di
lanciare osql, ma è problematico settare programmaticamente un percorso
variabile *per machine* senza che vi siano relazioni predeterminabili (una
variabile di sistema presente nell'ambiente)
Fra le variabili di ambiente ne trovi una che fa al caso tuo?
Mi sapresti indicare il valore completo della variabile Path così come
appare in Sistema>>Avanzate, eventualmente prima e dopo l'installazione del
pacchetto che effettua l'aggiunta di percorso?
(fai un doppio click sul nome e copia/incolla il contenuto)
Post by MICHELElancio la prima riga del codice che mi hai dato
lancio la seconda riga e mi dice
reg non è riconosciuto come comando interno o esterno
rilancio osql
osql non è riconosciuto come comando interno o esterno
Come ho già specificato, per eseguire la seconda istruzione DEVI aprire il
prompt comandi con:
CMD /V:ON
In caso contrario (solo CMD) non verrà eseguita correttamente.
Mi stranisce però che la prima riga non imposti, come sembra, il path
corretto.
Prova ad eseguire il batch con qualche riga di debug:
------ start
echo off
path
for /f "tokens=3 skip=4" %%i in ('reg query
"HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v
path') do set path=%%i
path
for /f "tokens=1,3 skip=4" %%i in ('reg query "HKCU\Environment"') do set
path=!path!;%%i=%%j
path
------ end
(sono sei righe ed iniziano con echo, path, for, path, for, path.
Ricostruiscile correttamente. )
Copia l'output (segna, seleziona col mouse e copia dal menu Modifica della
finestra del prompt) ed incollalo nella tua risposta
Post by MICHELECome ultima cosa controllando nelle variabili d'ambiente alla voce path
leggo le due voci
C:\Programmi\Microsoft SQL Server\80\Tools\Binn\;C:\Programmi\Microsoft
SQL Server\90\Tools\binn\
Sicuro che sia binn e non bin?
--
Paolo Angioni - MVP - Shell/User