MS-DOS : Boucle For, IF et Find imbriqués, probleme d'affectation - Shell/Batch - Programmation
Marsh Posté le 27-06-2008 à 17:02:08
UP!
Il y a pas l'air d'avoir grand monde qui fait du MS-DOS... C'est vrai que c'est limité, mais c'est bien pratique pour ce genre de bout de code (pas de compilation)...
C'est pour le boulot, alors une réponse avant ce soir serait grandement appréciée !
Marsh Posté le 27-06-2008 à 19:43:14
Hello , tu n'as pas besoin de créer des variables
Je te le mets comme ça car c'est facile à comprendre mais on peut faire plus court ( mais plus compliqué à comprendre si tu n'as pas l'habitude )
@echo off & cls |
Marsh Posté le 01-07-2008 à 13:57:44
Cool, je connaissait pas "delims" !
Vu l'urgence, j'ai fait l'équivalence en C#, mais pour du code si simple, vaut mieux du batch !
Merci
Marsh Posté le 27-06-2008 à 11:58:49
Plutôt qu'une explication compliqué, je préféré un exemple simple :
for %%i in (C:\UNDOSSIER\*.csv" ) do (
for /f %%k in ('echo "%%i" ^|FIND /c "TOTO"') do set varune=%%k
for /f %%j in ('echo "%%i" ^|FIND /c "TITI"') do set vardeux=%%j
if %varune%==1 (
echo CECI EST UN FICHIER TOTO : "%%i"
rem on fait d'autres actions spécifiques au fichier TOTO
)
if %vardeux%==1 (
echo CECI EST UN FICHIER TITI : "%%i"
rem on fait d'autres actions spécifiques au fichier TITI
)
)
En résumé :
Je prend tout les fichiers d'extension CSV présent dans C:\UNDOSSIER
Pour chaque fichier CSV, si il contient TOTO dans son nom, je fait certaines actions, si il contient TITI, j'en fait d'autres.
Le problème, c'est que je suis un gros nul en MS-DOS, et que mon bout de code ne fonctionne pas.
Et je n'arrive même pas à savoir pourquoi.
J'ai l'impression que mes variables varune et vardeux ne sont pas correctement assignées, ou alors pas tout le temps... Bref, je comprend pas.
Si quelqu'un peu m'aider...
Merci d'avance.
---------------
Il faut arreter l'informatique le jour où l'on trouve 1024g dans 1kg