NewBatcherNoob

NewBatcherNoob - Shell/Batch - Programmation

Marsh Posté le 26-10-2010 à 16:41:19    

Bonjour,
 
Bon ba voilà.
J'ai compris comment fonctionne le batch.
Je sais crée un fichier, supprimé, renommé, crée un répertoire, ect...
Mais voilà, je ne comprend rien à la création avec les commandes.
J'ai beau essayé depuis 3 jours je souhaite comprendre comment marche la fonction for et bien rien à faire.
Je ne trouve pas comment passé de mon répertoire ou comment rentrée dedans, pour faire une recherche de fichier.
Alors du coup ben je passe ici et j'ai vue de la lumière et me suis arrêter.
Exemple quand on marque for/D ou for/F ou for/H ect... est ce que c'est bien le dossier f:\ ou bien c:\ ect...
Ensuite pour utilisation des variables, est ce que c'est uniquement : eol, delims, usebackq, tokens puis définitions des variables ou bien c'est que les variables ?
C'est un peu tiré par les cheveux je sais mais j'essaye de comprendre l’exécution.  
 
Merci par avance de vos explications et désolé encore de ma noob attitude mais bon faut démarré au jour, enfin comme tous le monde.
 

Reply

Marsh Posté le 26-10-2010 à 16:41:19   

Reply

Marsh Posté le 27-10-2010 à 08:32:33    

salut
 
Pour démarrer simple : For permet de faire une boucle sur ce qui est contenu dans les parenthèses. Cela peut être :
- une liste de fichier ex

for %i in (*.mp3) do echo %i


- les lignes d'un fichier texte (avec l'argument /f) ex

for /F %i in (c:\windows\directx.log) do echo %i


- le résultat d'une commande (il faut utiliser le symbole ' et l'argument /f )ex

for /f %i in ('dir /b c:\') do @echo element = %i


 
 
en aucun cas les paramètres /f, /d ... ne correspondent à un disque
Ce que tu appelles les variables n'en sont pas. Ce sont des paramètres pour affiner la boucle ou les éléments
 
Lors la lecture d'un fichier, il va séparer le texte de chaque ligne en bloc (séparateur par défaut est l'espace et tabulation). le premier element sera %i. Pour utiliser les éléments suivants il faut utiliser "token". Pour changer le séparateur par défaut c'est delims.
 
+
 


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 28-10-2010 à 12:46:39    

Bonjour, merci pour ta réponse.
Comment fait t'on pour initialisé le %i
J'ai fait comme cela  
set i="c:\nomRep\nomSousRep\"
Il me fait une commande innatendue.
Est ce que mon i peut représenter ces répertoires ou se situe mes fichiers. Ou bien je dois leurs trouver une variable de positionnement ?
 
Merci Merci

Reply

Marsh Posté le 28-10-2010 à 15:45:42    

Bon la ça donne un truc comme ça.
Sauf que pour le moment j'arrive pas a faire de recherche.
Je souhaite qu'il m'affiche mes fichiers qui ont une extension .txt à l’écran ou qu'il m'affiche qu'il n'y a pas de fichiers.
Au démarrage je crée donc un fichier txt pour être sur que ça marche.
Mais le soucie c'est qu'il m'affiche les 2 qu'il y ai un fichier ou qu'il n'y ai pas du coup je me demande comment faire.

 

Merci beaucoup j'ai pas mal évolué depuis le 1er message.

 

@echo off

 

set FILENAME=*.txt

 

set FILEPATH1=d:\TesteDosBatchEssais\autreRep\

 

set FILEPATH2=d:\TesteDosBatchEssais\

 

@echo fichier batch permattant de lister tous les fichiers d'un disque
pause
@echo listing des fichiers de "d:\TesteDosBatchEssais\autreRep\" en cours (1 sur 1)...
dir "d:\TesteDosBatchEssais\autreRep\" /b /s > "d:\TesteDosBatchEssais\autreRep\ClownACFree.txt"
 
@echo listing fini !
pause

 

@echo se situer dans un répértoire avec un batch
pause

 

FOR /F %%f in ('dir /S /B %FILENAME%') do set FILEPATH1=%%f

 

IF NOT '%FILEPATH1%'=='' (
    echo File found : %FILEPATH1%
)
dir %FILEPATH1%

 

pause

 

FOR /F %%f in ('dir /S /B %FILENAME%') do set FILEPATH2=%%f

 

IF NOT '%FILEPATH2%'=='' (
 echo File found : %FILEPATH2%
)
dir %FILEPATH2%
pause


Message édité par ClownACFree le 28-10-2010 à 15:46:25
Reply

Marsh Posté le 28-10-2010 à 16:43:46    

y'a du mieux ;)
 
faut t'il qu'il vérifie la présence de fichier txt dans chaque sous répertoire ?  
 
Si oui, il faut faire la liste des répertoires ( dir /ad /b /s >rept.txt) et ensuite faire une boucle sur chacun de ses répertoire pour vérifier s'il y contient fichier texte.


Message édité par Xspawn_Lpc le 28-10-2010 à 16:46:35

---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed