Comment exécuter des fonctions de fichier sur plusieurs fichiers. On dirait que je ne peux pas utiliser de caractères génériques ?Comment exécuter des fonctions de fichier sur plusieurs fichiers à l'aide de caractères génériques ? Disons qu'après avoir terminé avec les fichiers, j'aimerais les trier dans les dossiers correspondants comme celui-ci :
Move Files("c:/temp/*.jmp", "c:/temp/processed_jmp/");
Move Files("c:/temp/*.csv", "c:/temp/processed_csv/");On dirait que cela ne fonctionnera pas avec les caractères génériques. Je détesterais obtenir la liste de tous les fichiers, la diviser en listes distinctes pour chaque extension, puis créer des boucles FOR pour parcourir chaque fichier.... Existe-t-il une manière plus élégante de procéder ?
Re : Comment exécuter des fonctions de fichiers sur plusieurs fichiers. On dirait que je ne peux pas utiliser de caractères génériques ?Ouais, je n'appellerais pas ça plus élégant. J'ai vu cette solution, oui, mais je préfère m'en tenir à ma solution actuelle.
Merci beaucoup!Re : Comment exécuter des fonctions de fichiers sur plusieurs fichiers. On dirait que je ne peux pas utiliser de caractères génériques ?Vous pouvez utiliser RunProgram, quelque chose comme ça (beaucoup de configuration pour un exemple complet)
Delete Directory( "$temp/aaa" ); // make sure source is empty
Create Directory( "$temp/aaa" );
Save Text File( "$temp/aaa/a1.txt", "a" );
Save Text File( "$temp/aaa/a2.txt", "aa" );
Save Text File( "$temp/aaa/a3.bad", "no suffix" );
Delete Directory( "$temp/bbb" ); // make sure dest is empty
Create Directory( "$temp/bbb" );
aaa = Convert File Path( "$temp/aaa", "windows" ); // "C:\Users\v1\AppData\Local\Temp\aaa"
bbb = Convert File Path( "$temp/bbb", "windows" ); // "C:\Users\v1\AppData\Local\Temp\bbb"
aaawild = aaa || "\a*.txt"; // wild card *
result = Run Program( Executable( "CMD.EXE" ),
Options( {"/a", "/q", "/c move ", aaawild, bbb} ), ReadFunction( "text" ) );
Write( result );
Show( Files In Directory( aaa ) );
Show( Files In Directory( bbb ) );
C:\Utilisateurs\v1\AppData\Local\Temp\aaa\a1.txt
C:\Utilisateurs\v1\AppData\Local\Temp\aaa\a2.txt
2 fichier(s) déplacé(s).
Fichiers dans le répertoire (aaa) = {"a3.bad"} ;
Fichiers dans le répertoire (bbb) = {"a1.txt", "a2.txt"} ;
/a et /q sont choix pour CMD.EXE et /c transmet la commande move à CMD.EXE.
Re : Comment exécuter des fonctions de fichiers sur plusieurs fichiers. On dirait que je ne peux pas utiliser de caractères génériques ?En ce moment, je l'ai implémenté de cette façon :
path = "c:/temp/";
pathProcessed = path||"processed/";
listOfFiles = Files In Directory(path);
for(i=1, i<=N Items(listOfFiles), i++,
if(Contains(listOfFiles[i], ".jmp")>0, Move File(path||listOfFiles[i], pathProcessed||listOfFiles[i]));
);
mais ça a l'air gênant...