TUTOS.EU

Echapper correctement une commande pour qu'elle fonctionne dans un fichier bat

Comment échaper les carractère d'une ligne de commande pour qu'elle fonctionne également quand elle est placée dans un fichier batch

Vous ne pouvez pas copier\coller telle quelle une commande que vous passez dans une invite de commande dans un fichier .bat.
Par exemple, la commande pour créer une tâche planifiée qui ne s'exécutera qu'une fois à une date et heure définie et avec un domaine\login et mot de passe donné est du type :

SCHTASKS /create /tn "Nom tache" /tr "MonProgramme.exe "Un parametre entre guillemets"" /sc ONCE /sd 29/01/2015 /st 17:00 /RU "domain\login" /RP "password" /RL HIGHEST
Lien vers le fichier : cliquez ici Copier le code

Mais si vous voulez exécuter cette même commande dans un fichier .bat, il faudra échaper les guillemets pour les arguments passés à MonProgramme.exe, cad :

SCHTASKS /create /tn "Nom tache" /tr "MonProgramme.exe \"Un parametre entre guillemets\"" /sc ONCE /sd 29/01/2015 /st 17:00 /RU "domain\login" /RP "password" /RL HIGHEST
Lien vers le fichier : cliquez ici Copier le code

Voici les guillemets qui ont été échapés

Tous les caractères ne s'échappent pas de la même façon. Par exemple dans cette ligne de commande :

ffmpeg.exe -i MaVideo.mp4 -s 480x270 -f image2 %03d.png
Lien vers le fichier : cliquez ici Copier le code

Le pourcentage % s'échappe en le doublant.
La ligne à placer dans un fichier bat va ainsi devenir :

ffmpeg.exe -i MaVideo.mp4 -s 480x270 -f image2 %%03d.png
Lien vers le fichier : cliquez ici Copier le code

cad

Pages Web

Site WebDescription
ss64.comEscape Characters, Delimiters and Quotes

2