Bonjour tout le monde, bon cette solution là marche chez moi (enfin à mon boulot plus précisément)
Un fichier ejectUSB.bat
- Code: Tout sélectionner
@echo off
sync -r %1
unmount -l %1
DevEject -EjectDrive:%1
if errorlevel 1 pause
del /Q %TMP%\deveject.exe
del /Q %TMP%\MNT.exe
del /Q %TMP%\sync.exe
del /Q %TMP%\UNMOUNT.exe
del /Q %TMP%\ejectUSB.bat
Un fichier eject.com
- Code: Tout sélectionner
@echo off
:DefineUSBLetter
dir > USBLetter.txt
if exist c:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=c:
if exist d:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=d:
if exist e:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=e:
if exist f:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=f:
if exist g:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=g:
if exist h:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=h:
if exist i:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=i:
if exist j:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=j:
if exist k:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=k:
if exist l:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=l:
if exist m:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=m:
if exist n:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=n:
if exist o:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=o:
if exist p:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=p:
if exist q:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=q:
if exist r:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=r:
if exist s:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=s:
if exist t:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=t:
if exist u:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=u:
if exist v:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=v:
if exist w:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=w:
if exist x:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=x:
if exist y:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=y:
if exist z:\framakey\framalauncher\eject\USBLetter.txt set USBLetter=z:
del /q USBLetter.txt
if not exist %USBLetter% goto end
:Copy file to temp
copy deveject.exe %TMP%
copy ejectUSB.bat %TMP%
copy MNT.exe %TMP%
copy sync.exe %TMP%
copy UNMOUNT.exe %TMP%
:Start the eject from the temp directory
start "REMOVING" /D %TMP%\ ejectUSB %USBLetter%
:end
set USBLetter=
Avec toujours dans les fichiers ceux listés précédemment (ceux qui sont aussi copiés)
Le fichier bat est bien supprimé, seul problème, la fenêtre de commande reste ouverte (ce qui nous annonce aussi que l'opération est réussie), pas moyen de faire un quit puisque la dernière action doit être de virer le fichier lui même.
Je voulais faire ça plus propre dans un sous répertoire de temp, mais j'arrivais pas a le supprimer puisque cela se faisait après la suppression du script.
Quant au menu rien de changé par rapport à ce qui a été dit.
Question suivante: Comment fermer les applications (en gros un /F) qui utilisent encore la clef...Ca ça serait cool
Bon je vous laisse, merci du boulot fourni préalablement, j'aurai pas réussi (en tout cas pas aussi rapidement) sans
Signé: Teebo (et merci à Hatila pour le compte BugMeNot
)