Bonjour,

-Je débute en batch, je cherche à comparer une série de fichiers avec des noms à rallonge.
L'ancien code était:
Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
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 bat : Sélectionner tout - Visualiser dans une fenêtre à part
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 bat : Sélectionner tout - Visualiser dans une fenêtre à part
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 bat : Sélectionner tout - Visualiser dans une fenêtre à part
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 bat : Sélectionner tout - Visualiser dans une fenêtre à part
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