Newsgroup: it.comp.os.win.xp
Titolo: help script

Ciao ,
ho bisogno di un vostro aiuto per completare uno script realizzato in
batch .
Questo script prevede durante la sua esecuzione diversi  riavvi del pc
in punti diversi dello script stesso . Il mio problema e' che vorrei che
ad ogni reboot lo script riprendesse esattamante da dove ha effettuato
il reboot .
Avete qualche indicazione da darmi ..e/o qualche esempio 
Grazie 100000000
Pietro 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 il reboot .
Be', senza vedere lo script è un po' difficile... diciamo che il
comando CALL può essere usato per chiamare batch esterni oppure
etichette esistenti nello stesso batch. Da vedere resta la possibilità
di chiamare etichette esistenti in batch esterni... eventualmente puoi
mettere degli IF che controllino la presenza di un file, se c'è chiama
l'etichetta opportuna.
Oppure, leggi tramite FOR il contenuto del suddetto file, e lì dentro
metti l'etichetta da chiamare nel batch principale tramite CALL.
Oppure, potresti generare al volo tramite ridirezione i "pezzi" di
batch che ti servono, dove ogni pezzo genera il successivo al termine
della sua esecuzione.
Già che ci siamo, in caso ti servisse e non lo sapessi, il comando
ECHO contenuto nelle "unix utilities" (
unxutils.sourceforge.net
)
permette di ridirezionare qualsiasi codice ASCII. Così se vuoi
generare un batch che a sua volta genera altri batch, quantomeno puoi
fare pure questo.
ciao,
Panathos

Panathos, 
prima di tutto GRAZIE 1000 per la risposta !!! 
Quello che io vorrei fare e' questo: 
1)modifica registro 
2)riavvio
3)installazione di un'applicazione 
4)riavvio 
5)exit 
il batch che esegue i punti deve essere unico.  Quello che vorrei e' 
che dopo il punto 2 , quindi dopo il riavvio il programma continui 
con l'installazione del programma del punto 3 e cosi via .....
Ciao e grazie 


 5)exit
Per la modifica del registro cerca nella kb Microsoft la sintassi di
reg.exe, se non la conosci già. Il batch somiglierà a qualcosa del
genere:
reg.exe /comandi vari -oppure - regedit /s <nomefile.reg>
echo c:\software\setup.exe >%userprofile%\menuav~1\esecuz~1\esegui.cmd
echo delete %userprofile%\menuav~1\esecuz~1\esegui.cmd
echo shutdown -r -f -t 1 >>%userprofile%\menuav~1\esecuz~1\esegui.cmd
shutdown -r -f -t 1
In pratica:
-modifica il registro
- genera un batch nella "esecuzione automatica" che lancia il setup
della tua applicazione
- aggiunge al batch il comando che lo cancella dal disco
- aggiunge al batch il comando di riavvio
- esegue il riavvio
Quando il PC riparte, eseguirà il batch nella "esecuzione automatica",
che provvederà a cancellarlo.
N.B.: il comando "echo" delle succitate Unix Utilities permette di fare
giochetti tipo
echo del \450 >batch.cmd
laddove \45 è il codice ottale del carattere ASCII %. In pratica
ottieni "del %0" nel batch, che provvede a cancellare sé stesso. Se
usi il comando echo "standard" di windows, non puoi fare ridirezioni di
caratteri matchati dalla shell (a quanto mi risulta).
ciao,
Panathos

Panathos , 
per adesso Grazie 1000 , l'ho provo e ti sapro dire se e' tutto ok. 
Ciao 


"Pietro Bauli"
1 script che adoperai all'inizio della mia "carriera" mai approfondito
o modificato per migliorarlo .. TU comunque DEVI di sicuro modificare
la parte shutdown dove c'e' scritto  "win9x" .. cerca sul web i
comandi adatti per il tu OS
copia incolla e salva con estensione WSF (quelloche vuoi.wsf)
PS:
non sono esperto in wsf .. ma se hai qualche problema con la parte
di puro script domanda
' cosi come e' senza modifiche funziona su un win9x
<?xml version="1.0" encoding="ISO-8859-1" ?>
<package>
<job id="part1">
<script language="VBScript">
<![CDATA[
MsgBox " This is Part 1 of the script."
Set Sh = CreateObject("WScript.Shell")
sKeyBase = "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\"
sEngine = WScript.FullName
sScript =  WScript.ScriptFullName
sCmd = sEngine & " " & "" & sScript & "" & " //I //JOB:part2"
Sh.RegWrite sKeyBase, sCmd
MsgBox "Add a RunOnce for this user."
' win9x inizio
set oShell = CreateObject("WScript.Shell")
oShell.Run _
  "C:\WINDOWS\RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2", 2, False
'win9x fine
]]>
</script>
</job>
<job id="part2">
<script language="VBScript">
<![CDATA[
MsgBox " This is Part 2 of the script."
 ]]>
</script>
</job>
</package>
' fine wsf
Questo sotto e' l'help del WSH con numerosi esempi ( sopra il mega)
http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en
snip :   
http://snipurl.com/jtur
Download :
http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe
snip :  
http://snipurl.com/jtut
Download and install WSH 5.6 from here:
http://msdn.microsoft.com/downloads/list/webdev.asp
9x
http://www.microsoft.com/downloads/details.aspx?FamilyId=0A8A18F6-249C-4A72-BFCF-FC6AF26DC390&displaylang=en
XP
http://www.microsoft.com/downloads/details.aspx?FamilyId=C717D943-7E4B-4622-86EB-95A22B832CAA&displaylang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=c717d943-7e4b-4622-86eb-95a22b832caa&DisplayLang=it
script56 italiano per 2000 e XP
per 98 e NT :
http://www.microsoft.com/downloads/info.aspx?na=22&p=18&SrcDisplayLang=it&SrcCategoryId=12&SrcFamilyId=&u=%2fdownloads%2
fdetails.aspx%3fFamilyID%3d0a8a18f6-249c-4a72-bfcf-fc6af26dc390%26DisplayLang%3dit
--
Fosco