IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ Windows Batch

FAQ Windows BatchConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 104, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireCommandes internesCommandes sur les répertoires

Pour changer de répertoire courant dans un fichier batch, il faut utiliser la commande cd (Change Directory).

 
Sélectionnez
cd repertoire

repertoire peut être : * le nom d'un sous-répertoire du répertoire courrant * un chemin complet (sur le même disque).

 
Sélectionnez
cd c:\windows\temp\

* .. (deux points) pour se déplacer dans le répertoire parent.

 
Sélectionnez
cd ..

* \ pour se déplacer à la racine du disque

 
Sélectionnez
cd \

* une variable contenant un chemin :

 
Sélectionnez
cd %temp%

Si le répertoire que l'on veut atteindre est situé sur un autre disque (lettre de lecteur différente), il faut utiliser l'option /D.

 
Sélectionnez
cd /d %var%

1 commentaire Donner une note à l´article (5)

Créé le 21 août 2009  par Thomas Garcia (Shawn12)

On utilise la commande Md :

 
Sélectionnez
Md nonDuRépertoire
Créé le 6 octobre 2007  par kokotis

On utilise la variable ?%.
Dans une boucle for on peut utiliser la variable %dp0

 
Sélectionnez
for /r "%~dp0\" %%i in (*.txt) do echo %%i
Créé le 6 octobre 2007  par kokotis

Dans cet exemple on utilise une boucle For avec le commutateur /r pour lister tous les fichiers ".exe" du répertoire racine:

 
Sélectionnez
for /r "C:\Répertoire\racine" %%i in (fichier.exe) do echo %%i
Créé le 6 octobre 2007  par kokotis

On utilise deux boucle For, un première pour détecter tous les disques durs, puis une deuxième pour rechercher le fichier sur chaque disque détecté:

 
Sélectionnez
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W ,X,Y,Y,Z) do ( 
 if exist "%%i:\" set VrLetter=%%i& call :search %%i 
) 
goto FinBoucle 
:search 
for /r "%VrLetter%:\" %%j in (fichier.txt) do if exist "%%j" echo %%j 
goto :eof
:FinBoucle
Créé le 6 octobre 2007  par kokotis

Dans cet exemple on renomme toutes les images .jpg du répertoire monRep :

 
Sélectionnez
for /r "C:\monRep\" %%j in (*.jpg) do set VrImage=%%j& set /a Compt+=1& call :renamImage 
:renamImage 
ren "%VrImage%" "image_%Compt%.jpg"
Créé le 6 octobre 2007  par kokotis

Il suffit de boucler en contaténant la variable date

 
Sélectionnez
for /r "C:\MonRep\" %%i in (*.*) do ren "%%i" "?te:~0,2%-?te:~3,2%-?te:~6,4%_%%~nxi"
Créé le 5 janvier 2008  par kokotis

On utilise la commande Net Share :

 
Sélectionnez
Net Share NomDuPartage=C:\chemin\du\répertoire\à\partager
Créé le 6 octobre 2007  par kokotis

On utilise la commande Rd :

 
Sélectionnez
Rd C:\chemin\du\répertoire /s /q
Créé le 6 octobre 2007  par kokotis

On utilise la commande Tree :

 
Sélectionnez
Tree C:\chemin\du\répertoire\source
Créé le 6 octobre 2007  par kokotis
 
Sélectionnez
for /r "%~1\" %%i in (*.*) do set VrChmFch=%%i& set VrExtnsFch=%%~xi& call :triExts
 
goto finTriExts
 
:triExts
 
if not exist "TriExtension\%VrExtnsFch%" mkdir "TriExtension\%VrExtnsFch%"
move "%VrChmFch%" "TriExtension\%VrExtnsFch%"
 
goto :eof
 
:finTriExts
Créé le 5 janvier 2008  par kokotis
 
Sélectionnez
for /r "%~1\" %%i in (*.jpg) do set VrNamFch=%%i& set VrDatFch=%%~ti& call :movFch
goto fin
 
:movFch
 
set VrDatFch=%VrDatFch:~0,10%
set VrDatFch=%VrDatFch:/=-%
 
if not exist "MonRep\%VrDatFch%" mkdir "MonRep\%VrDatFch%"
 
move "%VrNamFch%" "MonRep\%VrDatFch%"
 
goto :eof
 
:fin
Créé le 5 janvier 2008  par kokotis
 
Sélectionnez
for /f "tokens=4* delims= " %%i in ('dir /o:d "C:\monRep\*.txt" ^| findstr /i /c:".txt"') do set VrFchRcnt=%%i %%j 
echo %VrFchRcnt%
Créé le 5 janvier 2008  par kokotis

Si l'imprimante est branchée sur le por LTP:

 
Sélectionnez
tree "C:\monRep" /f /a > lpt1

Si c'est une imprimante USB:

 
Sélectionnez
tree "C:\monRep" /f /a > imprimArborc.txt
 print /d:nomImprimante imprimArborc.txt
del imprimArborc.txt
Créé le 5 janvier 2008  par kokotis
 
Sélectionnez
set VrSource=C:\MonRep
For %%a In ("%VrSource%\*.*") Do Set /A Compte+=1
If "%Compte%"=="" Set Compte=Pas de
echo  ==^> %Compte% nouveaux fichiers pour [ emule ]
For /f "delims=" %%a in ('dir "%VrSource%" /b') do (
   If %%a neq "" echo  | & for /R %VrSource% %%i in (*.*) do echo %%~nxi &
 )
Créé le 5 janvier 2008  par kokotis

]Comment ajouter une extension à tous les fichiers d'un répertoire ?

Il n'est pas rare de vouloir ajouter une extension à tous les fichiers d'un répertoire. Il suffit d'utiliser à cet effet une instruction for, comme le montre l'exemple ci-dessous. Cette commande gardera intact le nom de fichier, ne faisant qu'y ajouter le suffixe désiré.

 
Sélectionnez
for /r "C:\rep" %%i in (*) do ren "%%i" "%%~nxi.ext"
Créé le 24 octobre 2010  par dourouc05

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.