Base de connaissances

Astuces en ligne de commande sous DOS .bat ou .cmd

[Batch] Astuces Fichiers Batch (.bat)

Info : Rechercher des fichiers

*.* Tous les fichiers
*.txt Tous les fichiers textes
b*.exe Tous les fichiers exécutables commençants par un b
X*.* Affiche la liste des fichiers commençant par X

Info : Changer le nom de la barre
Title Installation By DragonCity

Info : Lancer le fichier bat à l’autorun de votre CD
[Windows] Créer un CD auto-exécutable

1 – Si vous avez le message Echo Off n’est pas reconnu…

C’est que vous utilisez Notepad,et il faut modifier l’encodage,voir le menu.

Encodage en ANSI


2 – Faire une boucle,exemple ici jusqu’à atteindre 7

** A mettre au début **

set /a counter=0
 :numbers

shutdown -s -t 0 est la condition final
 (la je lui dis d'éteindre mon pc a la fin de la boucle,-r pour redémarrer) 
 shutdown -r -t (valeur en seconde)

Pour sortier du fichier bat (End Of File)
 if %count% ==7 goto :eof 
 

**A mettre a la fin **

set /a counter=%counter%+1
 echo Nombre de fois : %counter% / 6

if %counter% ==6 (shutdown -s -t 0)
 goto :numbers

3 – Faire une pause ou un délai d’attente

Pour une pause rajouter :

Pause

Pour un délai d’attente rajouter :

Timeout 20

(une pause de 20 secondes)


4 – Fermer un programme

taskkill /im firefox.exe

(on ferme Firefox proprement)

taskkill /f /im firefox.exe
(on force Firefox à se fermer)


5 – Afficher ou cacher les commandes

Ajouter au début de votre code :

@ECHO off : Pour cacher

@ECHO on : Pour afficher


6 – Timeout Aléatoire

Timeout entre 0 et 100
(Remplacer la valeur 100 par 1000 pour avoir entre 0 et 1000)

set /A Valeur=%RANDOM% %% 100 timeout %Valeur%

Timeout définit dans une plage de valeurs
(Ici on aura une plage de valeur entre 20 et 100)

set /A Valeur=%RANDOM% * 80 / 32768 + 20 timeout %Valeur%

80 = Plage de valeurs
20 = Valeur minimum que l’on veut


7 – Appeler un fichier bat dans un autre

call fichier.bat


8 – Répondre a une question par Oui ou Non

Choix Simple

@echo off
 set /P choix=Fermer le programme (o=Oui ; n=Non) ? : 
 If %choix%==o (taskkill /im firefox.exe) else (echo Pas fermer !)

ou Choix multiple

set /P choix=Installer le programme (1 = word / 2 = excel / 3 = rien)? :

if /I "%choix%"=="1" (goto :A)

if /I "%choix%"=="2" (goto :B)

if /I "%choix%"=="3" (goto :C)

goto question

:A

echo Installation de Word

goto C

:B

echo Installation d'Excel

:C

9 – Forcer la suppression d’un dossier avec RMDIR

echo O|rmdir /S "\\?\E:\Pictures\DossieraSupprimer 
pause

echo O| : permet de répondre OUI automatiquement.

ou

rmdir /S /Q c:\temp

/S : Supprime tous les sous-répertoires et fichiers également.
/Q : Pas de confirmation avant la suppression


10 – Créer un dossier avec une question et des sous dossiers

@echo off
 cd games
 set /p name="Le Nom Du Jeu : "
 md "%name%" 
 cd %name%
 md content
 md code


11 – Copier un fichier ou répertoire dans plusieurs sous dossiers

Fichier
 @echo on
 for /d %%a in (*.*) do copy fichier.txt %%a
 pause

Dossier
 @echo on
 for /d %%a in (*.*) do xcopy/s "Optimize GDI" %%a
 pause

Plusieurs fichiers
robocopy "Dossier Source" "Dossier Destination" file1.txt file2.exe

12 – Supprimer les dossiers vides

@echo on
 for /f "tokens=*" %%i in ('dir /s /b /ad C:\test\* ^| sort /r') do rd "%%~i"
 pause

Remplacer C:\test\ par le dossier a vérifier.


13 – Supprimer des fichiers ou dossiers

del /S /Q pour ne pas demander de confirmation !

del /s Votredossier\*.exe
Supprimer les fichiers thumbs 
 del /s Thumbs.db

Supprimer les jpg, .ini et .db dans le dossier musique
del /s Music\*.jpg
 del /s Music\*.ini
 del /s Music\*.db

Vous n’avez plus qu’à placer le fichier .bat

dans le dossier C:\Users\ »Nom D’utilisateur » et le lancer!

Supprimer le répertoire "Optimize GDI"
 rmdir /S /Q "Optimize GDI"

Supprimer tous les répertoires "sys"
 @echo off
 for /r /d %%x in ("*") do (
 pushd "%%x"
 rmdir /s /q "sys"
 popd
 )
 pause

14 – Regrouper les fichiers .txt

Copy * fichierCompil.txt

15 – Copier avec Xcopy

Copier un dossier
 Xcopy "dossier" "C:\dossier_destination\"

Copier les fichiers seulement
 Xcopy "*.*" "C:\dossier_destination\"

Copier tous les fichiers et dossiers 
 Xcopy/s "*.*" "C:\dossier_destination\"

Rajouter une option
/Y Remplace les fichiers existants
/q Pour une installation silencieuse
/I Considère la destination comme devant être un répertoire.


16 – Rajouter dans hosts

echo 127.0.0.1 activate.adobe.com >> C:\Windows\System32\drivers\etc\hosts

17 – Écrire dans un fichier texte

echo texte_à_ecrire > fichier_de_sortie.txt

echo "ecriture a la fin du fichier" >> fichier_de_sortie.txt

18 – Désinstaller une MAJ Windows

start /w wusa.exe /uninstall /kb:971033 /quiet /norestart

Il faudra ensuite masquer la mise a jour quand elle sera proposé.

Ou le faire avec un script :
RemoveWAT+ Watermark v0.8 + Script MAJ.zip

start "title" /b /wait cscript.exe "HideWindowsUpdates.vbs" 971033

Si vous voulez cacher d’autre MAJ rajouter avec un espace

start "title" /b /wait cscript.exe "HideWindowsUpdates.vbs" 971033 3075249 2952664

19 – Liste fichiers et dossiers

Lister tous les fichiers et dossiers avec extensions
 dir /b > fichier.txt
 
 Lister fichiers et dossiers avec extensions et arborescence
 dir /b /s > fichier.txt

Lister tous les fichiers sans extensions
 for /f "delims=" %%i in ('dir /A-D /B /O:GNE *.*') do @echo %%~ni >> fichier.txt

 Lister tous les dossiers
 for /f %%i In ('dir /b /ad *.*') Do @echo %%~ni >> fichier.txt 

 20 – Boucle pour convertir des fichiers

@echo off
 SET PATH=sys
 For %%1 in (*.raw) do (
 echo %%1
 raw2wav.exe "%%1" "%%1.wav" 2 44100 16)

SET PATH=sys >> Définit le dossier source du programme
echo %%1 >> montre le nom de chaque fichier converti


21 – Renommer des fichiers avec double extensions

Rename *.wav *.
 Rename *.raw *.wav

22 – Renommer des caractères dans un fichier

@echo off
 setLocal EnableDelayedExpansion

for /f "tokens=* delims= " %%a in (items.xml) do (
 set str=%%a

set str=!str:FBA-XXX Pro=CPS1 CPS2 Neo-Geo!
 set str=!str:MAMEoXTRAS v1.14=MAME Arcade!
 set str=!str:mednafenx_nes=Nintendo NES!
 set str=!str:Surreal64 CE=Nintendo 64!
 set str=!str:mednafenx_pce=Pc Engine!
 set str=!str:NeoGenesis=Megadrive!
 set str=!str:MekaX=Master System!
 set str=!str:snes9xbox=Super Nintendo!

echo !str!>>fichiertemp.txt
 )
 type fichiertemp.txt>items.xml

del fichiertemp.txt

23 – Lancer tous les fichiers bat dans les dossiers et sous dossiers

@echo off
 for /r /d %%x in ("*") do (
  pushd "%%x" 
 call "optimize_gdi.bat"
  popd
 )
 pause

24 – Renommer chaque fichiers *.gdi comme les dossiers

@echo off

FOR /D /R %%# in (*.*) DO (
  PUSHD "%%#"
 FOR %%@ in ("test") DO (
  Echo Ren: ".\%%~n#\%%@" "%%~n#%%~x@\%%~n#%%~x@" 
  Ren "%%@" "%%~n#%%~x@"
 )
 POPD
 )

Pause&Exit

25 – Reconnexion automatique avec Ping

Avec ces 2 scripts je teste si j’obtiens un Ping avec le site Google,et si ce n’est pas le cas:

Sois dans le Script 1,je désactive la carte réseau et la réactive,avec une connexion automatique.
Sois dans le Script 2,je me connecte à mon point d’accès,et si pas de Ping je recommence la boucle.

Script 1 : Désactivation de la Carte Réseau avec devcon

Placer Devcon.exe dans c:\devcon\

En ligne de commande tapez:

devcon find * > liste.txt
 (pour avoir la liste en fichier texte)

Exemple :

USB\VID_07D1&PID_3C07\5&9CF499C&0&2
D-Link Wireless G DWA-110 USB Adapter

Tester le avec la commande :
devcon find *PID_3C07

Si vous avez bien votre équipement c’est parfait!

Script.bat
 
 @echo off
 :boucle
 devcon_x64.exe disable *PID_3C07
 timeout /t 1
 devcon_x64.exe enable *PID_3C07
 timeout /t 40
 ping -n 1 google.com
 if errorlevel 1 goto boucle

Script 2 : Reconnexion avec une boucle

@echo off
 :boucle
 netsh wlan disconnect interface="DWA 110"
 timeout /t 5
 netsh wlan connect ssid="YHA Public Access" name="YHA Public Access" interface="DWA 110"
 timeout /t 20
 ping -n 1 google.com
 if errorlevel 1 EQU 0 goto boucle

26 – Lancer un fichier Reg

                          REG IMPORT "fichier.reg"

 

27 – Déplacer chaque fichiers dans leurs dossiers supérieures
avec suppression du dossier d’origine

Ex: Dossier1 \ Dossier2 \ *Fichiers*
>> Dossier1 \ *Fichiers*

for /f "delims==" %%i in ('dir /a:d /b') do for /f "delims==" %%f in ('dir "%%i" /a:d /b') do (move "%%i\%%f\*" "%%i"&&rd "%%i\%%f" /s /q)

pause

28 – Lancer un bat dans tous les sous dossiers

@echo off
for /d %%a in (*) do (
  echo processing %%a
  pushd "%%a"
  call "%~dp0script.bat"
  popd
)

29 – Supprimer les fichiers inférieures à 10ko

setlocal
:: Size is in bytes
set "min.size=10240"

for /f "usebackq delims=;" %%A in (`dir /s /b /A:-D .`) do ^
if "%%~fA" neq "%~f0" if %%~zA lss %min.size% del "%%A"

pause

30 – Copier les répertoires du dossier utilisateur
sur une clé usb définie par son nom

A placer dans le dossier de l’utilisateur.

Le nom du périphérique est ici « Zalman ».

@echo off

for %%I in (.) do echo Nom du repertoire actuel : %%~nxI
echo ------------------------------------------------------------------------------

set /p name="Quel nom pour le repertoire ? : "

setlocal
for /f "tokens=1,2" %%d in ('wmic logicaldisk get caption^, volumename ^| findstr -i "Zalman"') do (

echo Lettre du Zalman : %%d

Xcopy /S /I Bureau "%%d\Clients\%name%\Bureau"
Xcopy /S /I Contacts "%%d\Clients\%name%\Contacts"
Xcopy /S /I Documents "%%d\Clients\%name%\Documents"
Xcopy /S /I Favoris "%%d\Clients\%name%\Favoris"
Xcopy /S /I Images "%%d\Clients\%name%\Images"
Xcopy /S /I Liens "%%d\Clients\%name%\Liens"
Xcopy /S /I Musique "%%d\Clients\%name%\Musique"
Xcopy /S /I OneDrive "%%d\Clients\%name%\OneDrive"
Xcopy /S /I Downloads "%%d\Clients\%name%\Downloads"
Xcopy /S /I Videos "%%d\Clients\%name%\Videos"

)
endlocal

pause

 Source https://dragoncity17.wordpress.com/2015/01/14/batch-astuces-fichiers-en-bat/

 

  • CMD, BAT, DOS, script, batch
  • 9 Utilisateurs l'ont trouvée utile
Cette réponse était-elle pertinente?

Articles connexes

ACCÉDER AUX PARTAGES DE FICHIERS WINDOWS DEPUIS MACOS X

ACCÉDER AUX PARTAGES DE FICHIERS WINDOWS DEPUIS MACOS X  PUBLIÉ LE23 MARS 2011 L’accès...

Trouver un package linux sur CENTOS

If you don’t know where to find the ifconfig command, follow the simple steps provided below....

Blocage des mises à jour Windows 7/8/8.1 pour les nouveaux processeurs

Depuis peu, Microsoft a décidé de bloquer les mises à jour de Windows 7/8/8.1 si il détecte qu'il...

Faire une capture d'écran avec un raccourci clavier

  Pour faire une capture rapide, il vous suffit d'appuyer simultanément sur les touches Windows...

Faire une capture d'écran avec l'outil Capture

L'outil Capture (également présent sous Windows 7 et 8) peut s'avérer très utile pour effectuer...