Détecter un périphérique en fonction d’un fichier

Détecter un périphérique en fonction d’un fichier

I. Présentation

Si vous souhaitez exécuter un script qui effectuera une action entre la machine et une clé USB par exemple, il faudra vérifier le script avant chaque exécution pour voir si la lettre indiquée dans le script correspond à la lettre du lecteur de votre clé USB. Du coup, c’est un peu ennuyeux de devoir faire cela à chaque fois que vous changez de machine. Pire encore, imaginez que ce script sera utilisé par des personnes qui ne connaissent pas grand chose en informatique et qui ne sont pas capables de vérifier la cohérence du script, vous faites comment ? Nous allons voir dans ce tutoriel une solution qui consiste à accéder aux différentes lettres de lecteur disponible jusqu’à trouver un fichier précis, qui devra être indiqué dans le script. Dès que ce fichier sera trouvé sur le périphérique, le script se dira « J’ai trouvé le lecteur sur lequel je dois effectuer l’opération, je peux donc commencer ». Ce script utilise le langage Batch, il est donc exécutable à partir d’un poste sous Windows.

II. Le code complet

Voici le code complet du script, des explications seront apportées dans la partie suivante.

@echo off
set FILENAME=autorun.inf
set DRIVERLIST=a,b,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,d,c
FOR %%d in (%DRIVERLIST%) do (
FOR /F "delims=" %%f in ('dir /B /S %%d:\%FILENAME%') do (
set LETTER=%%d
IF EXIST "%%d:\%FILENAME%" goto TRAITEMENT
)
)
:TRAITEMENT
echo Fichier trouvé dans le lecteur %LETTER% !
--- Votre code de traitement à insérer ici
exit

III. Explications

Avoir un bout de code c’est bien mais avoir des explications pour l’accompagner c’est encore mieux et ça vous permet de comprendre ce que vous faites. D’un point de vue global voici comment fonctionne le script :

On définit un nom de fichier à chercher (variable FILENAME) et un ensemble de lettres correspondant aux lettres de lecteurs à vérifier (variable DRIVERLIST). Ensuite, grâce à une boucle FOR on fait une vérification (DO : Faire…) où l’on prend une lettre de lecteur en commençant par la première de la liste pour vérifier sur ce lecteur si un fichier se nomme de la valeur FILENAME. Pour vérifier cela on refait une deuxième boucle FOR à l’intérieur de la première où l’on liste tous les fichiers du lecteur pour voir si un nom de fichier correspond à ce qu’on cherche. Dès que le fichier est trouvé (IF EXIST : S’il existe…), on va à l’étiquette TRAITEMENT c’est à dire qu’on se déplace dans le code jusqu’à trouver le début de l’étiquette TRAITEMENT et on continue à exécuter le code. C’est là que votre code de traitement devra être placé et devra intervenir pour effectuer vos opérations sur le lecteur.

Quelques informations en plus :

  •  « set » : Permet de définir des variables, représentées par FILENAME et DRIVERLIST dans ce programme.
  •  « dir » : Cette commande permet de lister le contenu d’un répertoire, l’option /B permet de lister uniquement les noms de fichiers (et non la date de création, etc…) et l’option /S permet de lister l’ensemble des répertoires et sous-répertoire, donc toute l’arborescence.
  •  « delims= » : Ceci permet d’indiquer un délimiteur qui dans notre cas est vide puisque lors du listing des fichiers, il n’y a pas de caractères en fin de ligne.
  •  « goto » : Cette directive permet de dire « Aller à… » où on indique après le nom d’une étiquette afin d’aller à un endroit du programme. Dans notre cas TRAITEMENT.

V. Pourquoi les lettres C et D à la fin ?

Il vaut mieux placer les lettres C et D à la fin de la liste car ce serait très long de scanner l’ensemble des fichiers de la partition C qui est en général la partition système, et D peut être éventuellement une partition de données. De plus si l’on cherche un autorun, on a peu de chance de le trouver.

Si vous avez des améliorations à me proposer ou une solution alternative, n’hésitez pas à laisser un commentaire ou directement utiliser le forum pour en discuter.

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

title-batch

Changer le titre de la fenêtre DOS en cours

I. Présentation Le titre par défaut d’une fenêtre DOS n’est pas très original pour ne …

Détecter un périphérique en fonction d’un fichier

Miroir d’une arborescence avec Robocopy

Table de Matieres1 I. Présentation2 II. Informations3 III. Le script et explications4 IV. Génération de …

Détecter un périphérique en fonction d’un fichier

Lister le contenu d’un fichier texte en batch

I. Présentation Il peut parfois lors de la construction d’un batch être utile de lire …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.