Discussione:
bat da usb key
(troppo vecchio per rispondere)
Pietro Bauli
2007-02-05 21:23:22 UTC
Permalink
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
Franz aRTiglio
2007-02-08 00:51:16 UTC
Permalink
Post by Pietro Bauli
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 ?
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
Franz aRTiglio
2007-02-08 00:56:38 UTC
Permalink
Post by Pietro Bauli
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 ?
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

If NOT %USBdrive%==NonTrovata goto TrovataIn

Echo Chiave non trovata
goto Fine

:TrovataIn
echo Chiave trovata in %USBDrive%

:Fine
Pietro Bauli
2007-02-09 13:59:55 UTC
Permalink
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
Pietro
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Franz aRTiglio
2007-02-09 19:17:38 UTC
Permalink
Post by Pietro Bauli
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 ???
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%
Franz aRTiglio
2007-02-09 19:17:38 UTC
Permalink
Post by Pietro Bauli
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 ???
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%
Pietro Bauli
2007-02-12 07:27:42 UTC
Permalink
Ciao
Post by Franz aRTiglio
nel peggiore dei casi, prova con
set myvar=%~d0%\BUILD\boot.img
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
Pietro
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Pietro Bauli
2007-02-12 13:03:57 UTC
Permalink
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'

Pietro
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Franz aRTiglio
2007-02-13 22:58:40 UTC
Permalink
Post by Pietro Bauli
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
Error : Could not open boot sector file " C:\BUILD\boot.img" error 3
Ma perche' C :\???? cosa ci azzecca ???
Probabilmente xche' il bat2exe NON capisce cosa sia =%~d0%
Post by Pietro Bauli
A me andrebbe bene pure il file bat ma non voglio rendere visibile il
codice dello script
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.
Pietro Bauli
2007-02-20 10:58:21 UTC
Permalink
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
Pietro
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Franz aRTiglio
2007-02-23 19:44:36 UTC
Permalink
Post by Pietro Bauli
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'
No prob ^__^

Loading...