[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 AdapterTester le avec la commande :
devcon find *PID_3C07Si 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/