OVH Cloud OVH Cloud

Auto-effacer un bat

23 réponses
Avatar
~Jean-Marc~ [MVP]
Bonjour à tous,

petit quizzzzzzz..... :-)

Il arrive de temps à autre que j'aie à lancer des batchs qui
ne servent qu'une fois (des installations, souvent).

Pour ne pas laisser trainer des bat partout sur le disque dur,
j'utilise cette astuce :

Au début du bat :
set bat=%0%

Et en dernière ligne :
start /B %comspec% /c "ping 127.0.0.1 -n 5 && del /f %bat%"

Je serais curieux de savoir si vous avez une autre méthode ?
(en bat de préférence, autres languages acceptés... ;-) )

@+

--
~Jean-Marc~ MVP Shell/User Fr
( Vista x86 Ultimate )
- http://msmvps.com/blogs/docxp/ -
- http://docxp.mvps.org -

3 réponses

1 2 3
Avatar
Jacques Barathon [MS]
"Do Ré Mi Chel La Si Do." wrote in message
news:%
Salut !


donne une erreur n'a aucune importance


Au contraire : ça prouve l'effacement.
Pas de message = suppression non effectuée.


Comme quoi, l'adage "pas de nouvelle, bonne nouvelle" n'est pas toujours
vrai.

Jacques


Avatar
Méta-MCI \(MVP\)
'soir !

J'ai une autre idée de solution, (beaucoup plus simple ?) :
- on écrit dans un fichier texte sur un serveur
- ce fichier texte lance la suppression avec PsExec.

Ainsi, non seulement on aura n nouveau processus, mais il sera sur une autre machine.



Autre idée : écrire un script de fin de session.
Encore faudrait-il que les outils parano laissent faire...
Avatar
Jean Pierre Daviau
Trouvé sur le net
----------
::http://home7.inet.tele.dk/batfiles/main/batfaq2.htm#73
@ECHO off
:: delme.bat
:: deletes self after running
:: author: Laurence Soucy, http://purl.oclc.org/net/Batfiles/
TYPE nul> %temp%.batexit.bat
::ECHO %0 |FIND.EXE ":" >nul
::IF errorlevel=1 ECHO. Enter full path to %0 including extension
::IF errorlevel=1 %temp%.batexit.bat
::: If *your code* changes the directory, un-comment the
::: previous three lines.
IF exist %0.bat ECHO. extension must be used
IF exist %0.bat %temp%.batexit.bat
IF not exist %0 ECHO. %0 must exist as entered or be in current
IF not exist %0 %temp%.batexit.bat
IF exist %temp%.batexit.bat DEL %temp%.batexit.bat
:: *your code* goes here
::: EOF represents the DOS end of file character, ASCII 26,
::: created in edit by [Ctrl]+[p]+[z].
::DEL %0EOF % uncomment this line to self-delete %
---------------------
1 2 3