flecheF.A.Q.

 

 

q Vous n'avez pas trouvé réponse à votre question, posez la sur le forum


f Les chemins comportant un espace, ne fonctionnent pas

MS-DOS ne gère pas les noms comportant plus de 8 caractères, et ceux comportant des espaces.

Solution 1: Les guillemets

cd c:"program files"

Solution 2: Découper le nom

cd c:progra~1

 

f Les accents ne s'affichent pas dans mes batchs, pourquoi ?

En effet les batchs utilisent les caractères unicode, il faudra donc, pour utiliser les accents ou autres caractères spéciaux, utiliser un logiciel tiers. Edit de windows remplit cette mission, mais Powerbatch sera plus confortable.

Exemple de conversion automatique:

echo €a utilise des caractŠres accentu‚ .

f Comment exécuter automatiquement mon batch ?

En utilisant le planificateur de tâche Windows, il est accessible via (Démarrer/Tous les programmes/Accessoires/Outils Système/Planificateur de tâches). Ensuite il suffit simplement de préciser le chemin du .bat ainsi que l'horaire et la fréquence d'exécution, puis de valider avec le mot de passe d'un administrateur. Vous pouvez également utiliser la commande dos AT pour programmer l'exécution de vos batchs.

f Comment faire masquer l'exécution de mon batch ?

Pour réduire un batch dans la barre des tâches lors de son exécution, il faut crée un raccourci qui pointe vers le batch. Faire un clic droit sur le raccourci, clic sur propriétés, et là dans exécuter sélectionner Réduite .

Voir un exemple

 

f Comment caché les lignes de commandes lors de l'exécution ?

Pour ne pas afficher les lignes de commandes, il y a deux solutions:

Solution 1: mettre cette ligne en début du batch.

@echo off

Solution 2: placé un @ devant toutes les lignes de commandes.

@echo salut

 

f Comment faire pour créer un log de mon batch?

Pour crée un log, d'un batch il suffit de faire une redirection du résultat de la commande vers un fichier texte.

Exemple:

xcopy c:\temp\*.* c:\temp1 >> c:\log\%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%.txt

f Comment enregistrer une variable dans une boucle for ?

Dans un batch il arrive que l'on est à définir une variable dans une boucle for, cependant il est impossible en dos d'affecter une variable dans une boucle for:

Exemple de problème:

for /f %%a in (c:\list.cvs) do (

set var=%%a

echo %var%

)

Solution: Utiliser l'expansion retardée

setlocal enableDelayedExpansion

for /f %%a in (c:\list.cvs) do (

set var=%%a

echo !var!

)

endlocal

q Notons qu'avec cette méthode le rappel de la variable ne se fait pas avec des %var% mais avec !var!

Autre solution, faire appel à un autre batch via la commande call est y placer le contenu du DO

f Comment télécharger un fichier via un FTP avec un batch?

Windows intègre déjà un outil pour se connecter à un site ftp, via la commande ftp, ensuite le principe et de créer un fichier de réponse avec les paramètres de connexion.

Exemple:

echo open monftp.fr  > ftp.ftp
echo USER nomutilisateur motdepasse >> ftp.ftp
echo cd repertoire >> ftp.ftp
echo mget nomfichier >> ftp.ftp
echo bye >> ftp.ftp
ftp -inv -s:ftp.ftp

Ainsi via se batch on se connecte au ftp, on se déplace dans le répertoire "repertoire" on télécharge le fichier "nomfichier" puis on quitte.

f Comment mettre le resultat d'une commande dans une variable ?

Pour ce faire il suffit de mettre la commande entre simple quote('commande') dans une commande for:

Par exemple si l'on veut recuperer le chemin courant :

for /f %%d in ('chdir') do set chemin=%%d
echo %chemin%

ou bien la date

for /f %%d in ('date /t') do set madate=%%d
echo %madate%

 

f Afficher des informations sur un fichier

Vous pouvez afficher la date et l\'heure de création dans un fichier, pour cela il faut utiliser le paramètre %~t

Dans un nouveau batch copier coller ceci:

@echo off

for %%a in (\"C:\\test.txt\") do echo %%~ta

pause

Constatez le résultat.

 

Vous pouvez afficher la taille du fichier ( en octets ) pour cela il faut utiliser le paramètre %~z

Dans un nouveau batch copier coller ceci:

@echo off

for %%a in (\"C:\\test.txt\") do echo %%~za

pause

Constatez le résultat.

 

Vous pouvez afficher l\'extension d\'un fichier ( en octets ) pour cela il faut utiliser le paramètre %~x

Dans un nouveau batch copier coller ceci:

@echo off

for %%a in (\"C:\\test.txt\") do echo %%~xa

pause

Constatez le résultat.

 

Vous pouvez afficher a ou les attributs d\'un fichier pour cela il faut utiliser le paramètre %~a

Dans un nouveau batch copier coller ceci:

@echo off

for %%a in (\"C:\\test.txt\") do echo %%~aa

pause

Constatez le résultat.

f Comment afficher un texte de couleur

f Voulez-vous que l'invite de commande prend toute votre écran ?

Pour faire en sorte que votre invite de commande prend toute votre écran (manuellement):

1. Allez dans l'invite de commande

2. Tapez "wmic"

3. Appuyez sur le bouton en haut à gauche : "maximizer" (le bouton du milieu qui permet d'agrandir la fenêtre).

4. Notre astuce est terminée, normalement la fenêtre prend toute votre écran.


 

q Une question, une remarque, n'hésitez pas à visiter le forum

 

 
Plan du site