Cómo realizar funciones de archivo en varios archivos. ¿Parece que no puedo usar comodines?¿Cómo realizo funciones de archivo en varios archivos usando comodines? Digamos que después de terminar con los archivos me gustaría ordenarlos en las carpetas correspondientes así:
Move Files("c:/temp/*.jmp", "c:/temp/processed_jmp/");
Move Files("c:/temp/*.csv", "c:/temp/processed_csv/");Parece que esto no funcionará con comodines. Odiaría tener que obtener una lista de todos los archivos, dividirla en listas separadas para cada extensión y luego hacer bucles FOR para recorrer cada archivo... ¿Existe una forma más elegante de hacerlo?
Re: Cómo realizar funciones de archivos en varios archivos. ¿Parece que no puedo usar comodines?Sí, no lo llamaría más elegante. He visto esta solución, sí, pero prefiero seguir con mi solución actual.
¡Muchas gracias!Re: Cómo realizar funciones de archivos en varios archivos. ¿Parece que no puedo usar comodines?Podrías usar RunProgram, algo como esto (mucha configuración para un ejemplo 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:\Usuarios\v1\AppData\Local\Temp\aaa\a1.txt
C:\Usuarios\v1\AppData\Local\Temp\aaa\a2.txt
2 archivos movidos.
Archivos en el directorio (aaa) = {"a3.bad"};
Archivos en el directorio (bbb) = {"a1.txt", "a2.txt"};
/a y /q son opciones para CMD.EXE y /c pasa el comando de movimiento a CMD.EXE.
Re: Cómo realizar funciones de archivos en varios archivos. ¿Parece que no puedo usar comodines?Ahora mismo lo tengo implementado de esta manera:
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]));
);
pero parece incómodo...