extracción de información con condición de fecha: coloque el nombre del archivo en la lista si es mayor que una fecha y hora especificadasHola,
Estoy tratando de obtener la lista de nombres de archivos en un directorio con la condición dada si es 1) archivo zip y también 2) fecha de creación mayor que aaaa/mm/dd. A continuación se muestra mi guión. Mi pregunta
1) se ejecutó sin error pero no devolvió la lista vacía. No estoy seguro de cuál es el problema (quizás la fecha).
2) ¿Cómo puedo establecer el formato de salida de la fecha de creación () en aaaa/mm/dd hh:mm:ss?
3) lleva mucho tiempo recorrer la ruta 2 porque tengo más de 100 000 carpetas zip. ¿Hay otra forma más rápida de hacerlo?
Gracias
path2 = "C:\Users\test\;
filelist = files in directory (path2);
lst2 = {};
For(i=1, i<= N items(filelist), i++,
If( Contains(filelist[i], ".zip") & Creation Date( path2||filelist[i]) > 2022-10-12T08:00:00, Insert Into( lst2, filelist[i] )
),
);
secuencias de comandosRe: extracción de información con condición de fecha: coloque el nombre del archivo en la lista si es mayor que una fecha y hora especificadasEn el ejemplo que proporcionó, falta una comilla doble en la línea path2 =, y también, la referencia de tiempo no parece ser manejada por JMP, por lo que al cambiarla a una función Informat(), uno puede estar seguro de que el La referencia de fecha/hora de JMP se está interpretando correctamente.
names default to here(1);
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Contains( filelist[i], ".zip" ) & Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00"),
Insert Into( lst2, filelist[i] )
)
);Re: extracción de información con condición de fecha: coloque el nombre del archivo en la lista si es mayor que una fecha y hora especificadasHola Jim, gracias. eso arregló el problema. Sin embargo, toma demasiado tiempo cuando una carpeta tiene demasiados archivos para revisar. A continuación se muestran los nuevos pasos que tengo, así que la próxima vez que solo quiera extraer los archivos más recientes, no me lleve tanto tiempo como usar la fecha/hora como filtro (arriba). No estoy seguro de si es una forma efectiva de hacerlo. ¿Hay alguna forma mejor de extraer los archivos más recientes en menos tiempo?
1) la primera vez obtenga la lista de archivos completa en la carpeta definida ( Archivos en el directorio (dir) ). Lo guardó en una columna de una tabla, "T1" (solo se ejecuta una vez)
2) después de algún tiempo, los últimos archivos se agregaron a la misma carpeta. script irá a la misma carpeta y tomará toda la lista de archivos como "nueva lista" (nueva lista = Archivos en el directorio (dir)) .
3) obtenga la columna en la tabla 1) como lista, luego recorra para eliminar los elementos de la nueva lista (uso Remove From ()) .
4) hacer lo que sea necesario en newlist.
5) agregar nueva lista en la tabla en 1).
6) repita los pasos 2)-5) la próxima vez que necesite obtener los archivos más recientes nuevamente.
¿Cualquier sugerencia?
Re: extracción de información con condición de fecha: coloque el nombre del archivo en la lista si es mayor que una fecha y hora especificadasPodrías probar esto... debería acelerarlo
Names Default To Here( 1 );
path2 = "C:\Users\test\";
filelist = Files In Directory( path2 );
For( i = N Items( filelist ), i >= 1, i--,
If( Right( filelist[i], 4 ) != ".zip",
Remove From( filelist, i, 1 )
)
);
lst2 = {};
For( i = 1, i <= N Items( filelist ), i++,
If( Creation Date( path2 || filelist[i] ) > informat("2022-10-12T08:00:00", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);