FAQ Windows Batch
FAQ Windows BatchConsultez toutes les FAQ
Nombre d'auteurs : 11, nombre de questions : 104, dernière mise à jour : 15 juin 2021
- Comment ajouter un chemin vers un répertoire au path ?
- Comment connaître la version de Windows ?
- Comment lancer une commande différente selon la version de Windows ?
- Comment lancer une application ?
- Comment tester si un processus est lancé ?
- Comment récupérer le PID d'un processus ?
- Comment tuer un processus ?
- Comment savoir quel processus utilise tel fichier ?
- Comment activer et désactiver les services ?
- Comment démarrer et arrêter les services ?
- Comment créer une tâche planifiée ?
- Comment connaître les noms de tous les PC d'un réseau ?
- Comment changer la résolution d'écran en ligne de commande ?
- Comment réactiver l'accès a la base de registre et au gestionnaire de tâches ?
- Comment arrêter/redémarrer l'ordinateur par la ligne de commande ?
- Comment mettre l'ordinateur en veille prolongée ?
Path = %path%; nouveau_chemin
On utilise la commande Ver
Voici un script pour exécuter une commande différente selon la version de windows:
ver | find /i "xp" > nul
if %errorlevel%==0 echo Windows XP
ver | find /i "vista" > nul
if %errorlevel%==0 echo Windows Vista
ver | find /i "NT" > nul
if %errorlevel%==0 echo Windows NT
ver | find /i "2000" > nul
if %errorlevel%==0 echo Windows 2000
ver | find /i "ME" > nul
if %errorlevel%==0 echo Windows ME
ver | find /i "98" > nul
if %errorlevel%==0 echo Windows 98
ver | find /i "95" > nul
if %errorlevel%==0 echo Windows 95
Si vous souhaitez exécuter une commande différente en fonction de la version de Windows actuellement utilisée, vous pouvez utiliser le code présenté ci-dessous. Pour exécuter une commande :
ver | find /i "xp" > nul
if %errorlevel%==0 echo Windows XP
ver | find /i "vista" > nul
if %errorlevel%==0 echo Windows Vista
ver | find /i "NT" > nul
if %errorlevel%==0 echo Windows NT
ver | find /i "2000" > nul
if %errorlevel%==0 echo Windows 2000
ver | find /i "ME" > nul
if %errorlevel%==0 echo Windows ME
ver | find /i "98" > nul
if %errorlevel%==0 echo Windows 98
ver | find /i "95" > nul
if %errorlevel%==0 echo Windows 95
Pour exécuter un script :
ver | find /i "xp" > nul
if %errorlevel%==0 goto xp
ver | find /i "vista" > nul
if %errorlevel%==0 goto winvista
ver | find /i "NT" > nul
if %errorlevel%==0 goto winnt
ver | find /i "2000" > nul
if %errorlevel%==0 goto win2000
ver | find /i "ME" > nul
if %errorlevel%==0 goto winme
ver | find /i "98" > nul
if %errorlevel%==0 goto win98
ver | find /i "95" > nul
if %errorlevel%==0 goto win95
echo Version non reconnue
goto fin
:xp
:: ici le code pour windows XP
:winvista
:: ici le code pour windows Vista
:winnt
:: ici le code pour windows NT
:win2000
:: ici le code pour windows 2000
:winme
:: ici le code pour windows ME
:win98
:: ici le code pour windows 98
:win95
:: ici le code pour windows 95
:fin
Soit vous tapez directement le chemin de l'executable ou alors vous pouvez utiliser la commande Start
start notepad.exe
Il s'agit d'un exécution asynchrone, on n'attend pas la fin du programme. L'intérêt de Start, entre autres, est l'option Wait qui, elle, force l'attente de la fin du programme.
On va coupler les commandes TaskList et findstr :
TaskList | findstr /c:firefox.exe > nul
If %errorlevel%== 0 echo Firefox est lancé
Si on cherche les numéros de processus correspondant à un nom de fichier exécutable, on couple les commandes tasklist et findstr dans une boucle for :
for /f "tokens=2 delims= " %%i in ('tasklist ^| findstr /i /c:"explorer"') do echo %%i
Il est également possible d'afficher un tableau contenant les information d'un processus (son PID et l'utilisation de la mémoire) avec la syntaxe suivante :
tasklist /FI "IMAGENAME eq NomProcessus.exe"
Exemple avec l'explorateur Windows :
tasklist /FI "IMAGENAME eq explorer.exe"
On peut également utiliser WMIC (Windows Management Instrumentation "Command-Line") (avec Windows XP et supérieur) pour faire cela. Pour certains, cette syntaxe est plus simple à utiliser voire plus explicite et se rapprochant plus d'une commande SQL que tasklist.
wmic Process where (Name="NomProcessus.exe") GET processid | more +1
Par exemple :
wmic Process where (Name="cmd.exe") GET processid | more +1
Pour obtenir plus d'informations sur le programme lancé, utilisez la commande suivante :
wmic Process where (Name="cmd.exe") GET /value
Pour tuer un processus on peut utiliser la commande taskkill comme ceci :
Taskkill /IM nonDuProcessus.exe
Exemple: Activer le service helpsvc:
sc \\%computername% config helpsvc start= enabled
Désactiver le service helpsvc:
sc \\%computername% config helpsvc start= disabled
Exemple : Démarrer le service helpsvc :
net start helpsvc
Arrêter le service helpsvc :
net stop helpsvc
On utilise la commande schtasks : dans cette exemple on exécute la tâche planifiée tous les jours a 23 :00 h:
schtasks /create /ru user /rp Password /sc hourly -mo 1 /ST 23:00:00 /TR "C:\chemin\du\batch.bat" /TN NomDeLaTache
On utilise la commande Net View
Pour ça il faut télécharger la commande Setvideo ici : http://jc.bellamy.free.fr/fr/systeme.html#setvideo.
Voici la syntaxe:
Setvideo x=1440 y=900 b=32 f=60
Pour réactiver l'accès à l'éditeur de registre regedit utiliser :
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f
Et pour réactiver l'accès au gestionnaire de tâches :
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableTaskMgr /t REG_DWORD /d 0 /f
Pour arrêter le système via la ligne de commande ou dans un fichier batch, on utilise la commande shutdown. Voici la syntaxe de cette commande :
Shutdown -s -t xx -c "Message"
- xx : nombre de seconde à attendre avant l'arrêt de l'ordinateur (0 : pour un arrêt immédiat)
- Message : un message qui accompagne l'opération
Pour redémarrer remplacer -s par -r.
Pour fermer la session remplacer -s par -l.
Et pour annuler une des opérations précédentes, utilisez shutdown -a (avant l'expiration du délai défini par -t).
Il est possible de mettre en veille prolongée l'ordinateur en utilisant la commande suivante :
rundll32.exe powrprof.dll,SetSuspendState