For do ...

For do ... - Shell/Batch - Programmation

Marsh Posté le 07-05-2007 à 17:57:49    

Bonjour,
j'aimerais savoir s'il y a moyen de reduire ces instructions avec une variable vu qu'il n'y a qu'une donnée qui change à chaque fois.
 
For %%i in ("G:\Recipe_Referenz\Referenz\KL-88\"*.*) do (if exist "G:\PQFP100\"%%~nxi move /y %%i "G:\Recipe_Referenz\Referenz\KL-88\PQFP100\" )
For %%i in ("G:\Recipe_Referenz\Referenz\KL-89\"*.*) do (if exist "G:\PQFP100\"%%~nxi move /y %%i "G:\Recipe_Referenz\Referenz\KL-89\PQFP100\" )
For %%i in ("G:\Recipe_Referenz\Referenz\KL-90\"*.*) do (if exist "G:\PQFP100\"%%~nxi move /y %%i "G:\Recipe_Referenz\Referenz\KL-90\PQFP100\" )
 
Je cherche depuis 2 bonnes semaines, malheureusement, sans succès.
Merci beaucoup pour votre aide
Philippe

Reply

Marsh Posté le 07-05-2007 à 17:57:49   

Reply

Marsh Posté le 07-05-2007 à 18:22:46    

J'oubliais : mon programme ne se résume pas à ces 3 lignes, les dossiers sont au nombre de 50 ( KL-125 par exemple ).
Bien sûr, mon prog fonctionne, mais c'est surtout pour en apprendre plus sur le fonctionnement des variables. Donc, si quelqu'un pouvait me réduire ces trois lignes en une seule ligne, je serais satisfait.   Philou

Reply

Marsh Posté le 07-05-2007 à 19:09:43    

Je pense qu'avec l'instruction SET, je devrais y arriver, mais je n'y arrive pas. Please, NGLECHAU, pourrais tu m'aider ? Je sais que tu es douée, tu m'as déjà bien aidé mais j'ai encore besoin de ton aide si précieuse. Merci d'avance

Reply

Marsh Posté le 08-05-2007 à 05:39:38    

coucou ;)
 
Tu peux par exemple utiliser deux boucles for imbriquees.
 
Si le numero s'incremente d'1 a chaque fois, regarde l'aide de for pour
for /l
 
dans le cas contraire, ce sera du style
for %%j in (liste_des_numeros)
 
Donc au final, tu as quelque chose dans ce genre :
 
for ... %%j in (...) do ( # <- ici tu parcours la liste des numeros, d'une facon ou d'une autre, cf. explication
  for %% in ( "G:\Recipe_Referenz\Referenz\KL-%%j\"*.*) do (...)
)
 
Voila pour l'idee :)

Reply

Marsh Posté le 08-05-2007 à 18:28:13    

For /L %%i in (D:\Referenz\KL-%L%\*.*) do (if exist "D:\Referenz\PQFP100\"%%~nxi move /y %%i D:\KL-%L%\PQFP100\)
 
 
J'ai bien lu l'aide de l'instruction FOR /L            
comme j'utilise en effet des dossiers qui vont de 82 à 130, cette manière serait la meilleure pour mon programme,
mais je ne sais comment imbriquer les deux instructions FOR.
Pour les pas, ce sera (82,1,130)

Reply

Sujets relatifs:

Leave a Replay

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