Newsgroup: it.comp.os.dos
Titolo: bat da usb key

Ciao , 
io ho realizzato uno script  che funziona da una normalissima chiavetta
usb . Il mio problema e' la lettera che viene assegnata all'unita' . Mi
spiego meglio , il mio script mi va a prendere un file in
f:\miacartella\miofile.bin dove f:\ e' la lettera assegnata dal sistema
alla mia chiavetta usb . Quello che vorrei e adattare questo script in
modo che la lettera dell'unita' venga presa in automatico , cioe' se il
sistema assegna come unita' la lettera G il mio script deve comunque
poter funzionare senza intoppi.
Esiste un modo semplice per fare quello che voglio io ?
Ciao e grazie a chiunque mi risponde 
Pietro 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Esiste un modo semplice per fare quello che voglio io ?
NON funziona su ME,9X o precedenti (quindi nemmeno su DOS puro)
ma su NT4,2000 e XP c'e' l'estensione di comando
%~d0
Esempio:
Set USBDrive=%~d0
echo %USBdrive%
quindi, se il batch deve copiare dalla chiavetta USB
il file FileDaCopiare.TXT in C:\MiaCartella
xcopy="%~d0%\FileDaCopiare.TXT" c:\miacartella
se devi litigare anche con 9x DOS puro o ME, puoi
far creare un file dala chiavetta usb un file "chiave"
e istruire il batch per cercare quel file es.
@Echo Off
Echo CHIAVE > \CHIAVE.TXT
set USBDrive=NonTrovata
If EXIST C:\CHIAVE.TXT Set USBDrive=C:
If EXIST D:\CHIAVE.TXT Set USBDrive=D:
If EXIST E:\CHIAVE.TXT Set USBDrive=E:
If EXIST F:\CHIAVE.TXT Set USBDrive=F:
If EXIST G:\CHIAVE.TXT Set USBDrive=G:
If EXIST H:\CHIAVE.TXT Set USBDrive=H:
.
.
.
If EXIST Y:\CHIAVE.TXT Set USBDrive=Z:
If EXIST Z:\CHIAVE.TXT Set USBDrive=Z:
If NOT %USBdrive%==NonTrovata goto TrovataIn
Echo Chiave non trovata
goto Fine
:TrovataIn
echo Chiave trovata in %USBDrive%
:Fine

 Esiste un modo semplice per fare quello che voglio io ?
NON funziona su ME,9X o precedenti (quindi nemmeno su DOS puro)
ma su NT4,2000 e XP c'e' l'estensione di comando
%~d0
Esempio:
Set USBDrive=%~d0
echo %USBdrive%
quindi, se il batch deve copiare dalla chiavetta USB
il file FileDaCopiare.TXT in C:\MiaCartella
xcopy="%~d0%\FileDaCopiare.TXT" c:\miacartella
se devi litigare anche con 9x DOS puro o ME, puoi
far creare nella radice della chiavetta usb un
file "chiave" e istruire il batch per cercare
quel file (per fare l'esempio creo, cerco e
cancello il file "~f1l3ch14v3.tmp") es.
@Echo Off
Echo CHIAVE > \~f1l3ch14v3.tmp
set USBDrive=NonTrovata
If EXIST D:\~f1l3ch14v3.tmp Set USBDrive=D:
If EXIST E:\~f1l3ch14v3.tmp Set USBDrive=E:
If EXIST F:\~f1l3ch14v3.tmp Set USBDrive=F:
If EXIST G:\~f1l3ch14v3.tmp Set USBDrive=G:
If EXIST H:\~f1l3ch14v3.tmp Set USBDrive=H:
.
.
.
If EXIST Y:\~f1l3ch14v3.tmp Set USBDrive=Z:
If EXIST Z:\~f1l3ch14v3.tmp Set USBDrive=Z:
DEL \~f1l3ch14v3.tmp


Ciao ,
grazie per la risposta . Fotunatamente devo utilizzarlo sotto XP quindi
va quasi bene dico quasi perche' mi succede questo  
lo script e'questo 
@echo off 
cls 
Set USBDrive=%~d0
echo %USBdrive%
cdimage.exe -l"MIOCD" -h -n -nt -b"%~d0%\BUILD\boot.img" "D:\SCD"
"D:\ISO\SCD.iso"
bene come avri capito crea la iso di un immaggine bootable partendo da
una cartella
che sta in D e creandola in un'altra cartella che sta in D. 
Ho omesso alcune parti dello script tipo la creazione delle cartelle la
parte copa i file nelle cartelle
Il mio problema e' che lui mi cambia pure  D:\SCD  e me la fa diventare
 ~d0 ( che ovviamente e la lettera che viene assegnata all'unita' quind
ad esempio T:\SCD
e di conseguenza non va 
Come mai ???
Ciao 



Le graffette sono nel punto sbagliato, prova con
cdimage.exe -l"MIOCD" -h -n -nt -b%~d0%"\BUILD\boot.img" . . .
nel peggiore dei casi, prova con
set myvar=%~d0%\BUILD\boot.img
cdimage.exe -l"MIOCD" -h -n -nt -b%myvar%


Le graffette sono nel punto sbagliato, prova con
cdimage.exe -l"MIOCD" -h -n -nt -b%~d0%"\BUILD\boot.img" . . .
nel peggiore dei casi, prova con
set myvar=%~d0%\BUILD\boot.img
cdimage.exe -l"MIOCD" -h -n -nt -b%myvar%

 cdimage.exe -l"MIOCD" -h -n -nt -b%myvar%
Sono dovuto ricorrere al peggiore dei casi!!!  Solo in questo modo 
funziona come volevo io .
Grazie 1000 per l'aiuto e la disponibilita'


Ciao , 
scusa se ti rompo nuovamante .
Questa procedura funziona perfettamante se il file rimane un batch  
set myvar=%~d0%\BUILD\boot.img
cdimage.exe -l"MIOCD" -h -n -nt -b%myvar% "d:\miacartella"
"d:\iso\miacartella.iso"
In queso modo facendo un comunissimo file batch funziona tutto. 
Ma se lo converto in exe con un programmino banale tipo "bat to exe" lo
script non
funziona piu' mi dice :
Error : Could not open boot sector file " C:\BUILD\boot.img" error 3
Ma perche' C :\???? cosa ci azzecca   ???
A me andrebbe bene pure il file bat ma non voglio rendere visibile il
codice dello script
Hai / avete qualche suggerimento ??
Ciao e ancora grazie per la disponibilita' 


 Hai / avete qualche suggerimento ??
prova con
echo set myvar=%~d0%\BUILD\boot.img  >1.bat
---
echo cdimage.exe -l"MIOCD" -h -n -nt
  -b%myvar% "d:\miacartella"
  "d:\iso\miacartella.iso" >2.bat
---
copy 1.bat 2.bat 3.bat
call 3.bat
del 1.bat
del 2.bat
del 3.bat
nota: la riga fra i trattini --- e' una riga sola
ma l'ho spezzata in 3 xche' outlook la spezzerebbe, quindi
devi rimetterla su una riga sola, in pratica
il >1 >2 scrive un file bat contenente i comandi, poi
con il "copy" li incolla nel 3.bat e lo esegue
con il call (in questo modo il bat si interrompe
fino a che 3.bat non ha finito poi riprende), e
cancella i file 1-2-3.bat creati.

Ciao , 
Scusa se ti rispondo solo adesso , ma tra influenza e impegni di lavoro
sono stato
abbastanza incasinato .
Ok , adesso funziona tutto come si deve e ovviamete mi sta facendo
risparmiare un casino
di tempo. 
Volevo quindi ringraziati per la pasienza e la tua disponibilita' 
Ciao 


 Volevo quindi ringraziati per la pasienza e la tua disponibilita'
No prob ^__^