FAQ Windows BatchConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 104, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireCommandes internesCommandes sur les fichiers

Pour écrire dans un fichier texte on utilise la commande echo et le caractère de sortie >, voici un exemple :

 
Sélectionnez

Echo Ce texte sera écrit dans la fichier > fichier.txt

Mais avec un seul > ca effacera ce qu'il y a dans le fichier, pour écrire à la suite on double le >

 
Sélectionnez

Echo Se texte sera écrit dans la fichier >> fichier.txt
Créé le 6 octobre 2007  par kokotis

Dans notre exemple, nous affichons les lignes 10 à 20.

 
Sélectionnez

for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do if %%i geq 10 if %%i leq 20 echo %%j
Créé le 5 janvier 2008  par kokotis

On utilise la commande Type :

 
Sélectionnez

Type nomDuFichier.txt
Créé le 6 octobre 2007  par kokotis

On utilise une boucle for, que l'on va coupler avec les commandes Type pour lire le fichier.txt et Set /a pour compter le nombre de retours chariot:

 
Sélectionnez

for /f "delims=" %%i in ('type fichier.txt) do set /a Compt+=1
echo %Compt%
Créé le 6 octobre 2007  par kokotis

Cet exemple va assembler tous les fichiers ".txt" contenu dans le répertoire MonRep :

 
Sélectionnez

for /r "C:\MonRep\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> Resultat.txt
Créé le 6 octobre 2007  par kokotis
 
Sélectionnez

for "C:\MonRep\" %%i in (*.txt) do for /f "delims=" %%j in ('type "%%i"') do echo %%j>> Resultat.txt

ou alors

 
Sélectionnez

COPY montext1.txt + montexte2.txt montexte.txt
Créé le 5 janvier 2008  par kokotis

Dans un fichier batch, on utilise une boucle for couplée à la commande type :

 
Sélectionnez

for /f "delims=" %%i in ('type fichier.txt') do echo %%i

Commentez Donner une note à l'article (5)

Créé le 15 février 2009  par kokotis

Chaque fichier.txt portera comme nom le numéro de ligne:

 
Sélectionnez

for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do echo %%j> %%i.txt
 

Chaque fichier.txt portera pour nom le premier mot de la ligne:

 
Sélectionnez

for /f "tokens=1,* delims= " %%i in ('type fichier.txt') do echo %%i %%j> %%i.txt
 

Chaque fichier.txt portera comme non les 5 premier caractéres de chaque ligne:

 
Sélectionnez

for /f "delims=" %%i in ('type fichier.txt') do set VrLigne=%%i& call :traitLigne
goto fintraitLigne
 
 
:traitLigne
echo %VrLigne%> "%VrLigne:~0,5%.txt"
goto :eof
 
fintraitLigne

Chaque fichier portera pour nom le numéro de ligne + les 5 premiers caractères de la ligne:

 
Sélectionnez

 
for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do set VrLigne=%%j& set VrNumbLign=%%i& call :traitLigne
goto fintraitLigne
 
:traitLigne
echo %VrLigne%> "%VrNumbLign%_%VrLigne:~0,5%.txt"
goto :eof
 
:fintraitLigne
Créé le 5 janvier 2008  par kokotis

On utilise la commande Print

 
Sélectionnez

Print fichier.txt
Créé le 5 janvier 2008  par kokotis

On peut utiliser les commandes Ren et Rename:

 
Sélectionnez

Ren "C:\répertoire\fichier.exe" "nouveauNom.exe"
Créé le 6 octobre 2007  par kokotis
 
Sélectionnez

If exist "C:\monRépertoire\MonFichier.exe" echo Le fichier exist
If not exist "C:\monRépertoire\MonFichier.exe" echo Le fichier n'exist pas
Créé le 6 octobre 2007  par kokotis

Pour copier un seul fichier on utilise la commande Copy :

 
Sélectionnez

Copy "C:\chemin\du\fichier.exe" "C:\chemin\de\destination"

Pour copier plusieurs fichiers on utilise la commande Xcopy :

 
Sélectionnez

xcopy "C:\chemin\du\répertoire\contenant les fichiers\*.*" "C:\Chemin\de\destination"
Créé le 6 octobre 2007  par kokotis

On utilise la commande Del :

 
Sélectionnez

del nomDuFichier.exe /f /q
Créé le 6 octobre 2007  par kokotis

Dans cet exemple on recherche le mot jul :

 
Sélectionnez

for /f "delims=" %%i in ('type "fichier.txt" ^|findstr /i /r "jul"') do echo %%i
Créé le 6 octobre 2007  par kokotis

On utilise la commande FC :

 
Sélectionnez

Fc fichier1.txt fichier2.txt
Créé le 6 octobre 2007  par kokotis

On utilise la commande Comp

 
Sélectionnez

Comp Fichier1.txt fichier2.txt
Créé le 5 janvier 2008  par kokotis

On fait ça avec une boucle for

 
Sélectionnez

for /f "delims=" %%a in ('dir /b') do call :cmd "%%a"
exit
:cmd
set fichierbck=%~1
set fichier=%fichierbck: =%
ren "%fichierbck%" "%fichier%"
Créé le 6 octobre 2007  par kokotis

On utilise la commande Move

 
Sélectionnez

Move "C:\fichier\a\déplacer.exe" "C:\nouvelle\emplacement"
Créé le 5 janvier 2008  par kokotis

La solution consite a réécrire le fichier en sautant les lignes vides:

 
Sélectionnez

FOR /F  %%i in ('TYPE fichier.txt') DO IF NOT "%%i"=="" Echo %%i>> fichier2.txt
Créé le 5 janvier 2008  par kokotis
 
Sélectionnez

echo un texte > "?te:~0,2%-?te:~3,2%-?te:~6,4%.txt"
Créé le 5 janvier 2008  par kokotis
 
Sélectionnez

for /r "C:\répertoire\contenant\les\fichier\txt\" %%i in (*.txt) do if %%~zi==0 del "%%i"
Créé le 5 janvier 2008  par kokotis

Fonction touch, uniquement pour des fichiers existants :

 
Sélectionnez

dir test.txt
 copy /b test.txt +,,
dir test.txt

6 commentaires Donner une note à l'article (0)

Créé le 6 février 2010  par Laurent Dardenne

Lien : Source : Alex Pinsker

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.