Boucles for imbriquées et SET
Bonjour,
-Je débute en batch, je cherche à comparer une série de fichiers avec des noms à rallonge.
L'ancien code était:
Code:
1 2 3 4 5 6 7 8
| SET CFG=%1
...
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_P0_P1P2.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_P0_P1P2.TXT >> RapDiff_%CFG%.txt
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_P0_P2P1.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_P0_P2P1.TXT >> RapDiff_%CFG%.txt
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_PP_P1P1.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_PP_P1P1.TXT >> RapDiff_%CFG%.txt
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_PP_P1P2.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_PP_P1P2.TXT >> RapDiff_%CFG%.txt
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_PP_P2P1.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_PP_P2P1.TXT >> RapDiff_%CFG%.txt
REM FC /L /N /W /C .\Resultats_ref_TESTS\H_U2345030_GRP_%CFG%_003_PP_P2P2.TXT .\Resultats_new_TESTS\H_U2345030_GRP_%CFG%_003_PP_P2P2.TXT >> RapDiff_%CFG%.txt |
et ce, sur un certain nombre d'autres fichiers contenant un code différent de U2345030
CFG n'ayant plus de raison d'être maintenant un paramètre, du coup, j'ai tenté de coder ainsi:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| for %%B in (A1522020 A9021040 A2842010 A2732010) do (for %%P in (P0_P1P2 P0_P2P1 PP_P1P1 PP_P1P2 PP_P2P1 PP_P2P2) do (
if "%%B" == "A1522020" (
set HOR=012
set CFG=SMN_TAN
FC /L /N /W /C %RACINE3%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT %RACINE2%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT >> RapDiff_%CFG%.txt
)
if "%%B" == "A9021040" (
set HOR=006
set CFG=SMN_RNA
FC /L /N /W /C %RACINE3%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT %RACINE2%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT >> RapDiff_%CFG%.txt
)
if "%%B" == "A2842010" (
set HOR=012
set CFG=AMN_RNA
FC /L /N /W /C %RACINE3%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT %RACINE2%01-Resultats_bruts\H_%%B_GRP_%CFG%_%HOR%_%%P.TXT >> RapDiff_%CFG%.txt
)
)
) |
Mais j'ai la vilaine erreur:
Code:
1 2
| FC*: impossible d'ouvrir D:\DATA\GRP_TRUNK\EXE_CALAGE\RESULTATS\01-RESULTATS_BRU
TS\H_A1522020_GRP__012_P0_P1P2.TXT - Ce fichier ou dossier n'existe pas |
Autrement dit, HOR est bien pris en compte mais non CFG, pourquoi et comment faire, svp?...
-Deuxième question plus simple je pense, j'ai une autre comparaison plus simple qui fonctionne bien mais j'aimerais qu'elle soient zappée dans le cas où un des fichiers est inexistant afin d'éviter le message d'erreur:
Code:
1 2 3 4
| FOR %%B IN (A1522020 A9021040 A2842010 A2732010) DO for %%C in (AMN_TAN SMN_TAN SMN_RNA AMN_RNA) do (
FC /L /N /W /C C:\Data\TestGRP2016\GRPv3.3TESTc\Donnees\BDD_PEQ\%%B_PEQ.txt D:\Data\GRP_trunk\Exe_Calage\Donnees\BDD_PEQ\%%B_PEQ.txt > RapDiff.txt
FC /L /N /W /C C:\Data\TestGRP2016\GRPv3.3TESTc\Donnees\BDD_PEQ\%%B_PEQT.txt D:\Data\GRP_trunk\Exe_Calage\Donnees\BDD_PEQ\%%B_PEQT.txt > RapDiff.txt
) |
avec bien sûr l'erreur:
Code:
1 2
| FC*: impossible d'ouvrir C:\DATA\TESTGRP2016\GRPV3.3TESTC\DONNEES\BDD_PEQ\A15220
20_PEQT.TXT - Ce fichier ou dossier n'existe pas |
Merci d'avance :)