Come eseguire funzioni file su più file. Sembra che non sia possibile utilizzare i caratteri jolly?Come posso eseguire funzioni file su più file utilizzando i caratteri jolly? Diciamo che dopo aver finito con i file vorrei ordinarli nelle cartelle corrispondenti in questo modo:
Move Files("c:/temp/*.jmp", "c:/temp/processed_jmp/");
Move Files("c:/temp/*.csv", "c:/temp/processed_csv/");Sembra che questo non funzioni con i caratteri jolly. Odierei ottenere l'elenco di tutti i file, suddividerlo in elenchi separati per ciascuna estensione, quindi creare cicli FOR per scorrere ciascun file .... Esiste un modo più elegante per farlo?
Re: Come eseguire funzioni file su più file. Sembra che non sia possibile utilizzare i caratteri jolly?Sì, non lo definirei più elegante. Ho visto questa soluzione, sì, ma preferirei attenermi alla mia soluzione attuale.
Molte grazie!Re: Come eseguire funzioni file su più file. Sembra che non sia possibile utilizzare i caratteri jolly?Potresti usare RunProgram, qualcosa del genere (molte impostazioni per un esempio completo)
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:\Utenti\v1\AppData\Local\Temp\aaa\a1.txt
C:\Utenti\v1\AppData\Local\Temp\aaa\a2.txt
2 file spostati.
File nella directory(aaa) = {"a3.bad"};
File nella directory(bbb) = {"a1.txt", "a2.txt"};
/a e /q sono opzioni per CMD.EXE e /c passa il comando di spostamento a CMD.EXE.
Re: Come eseguire funzioni file su più file. Sembra che non sia possibile utilizzare i caratteri jolly?In questo momento l'ho implementato in questo modo:
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]));
);
ma sembra imbarazzante...