Recorriendo carpetas en un directorioHola a todos,
Tengo un script que funciona con un conjunto de datos que obtengo de una máquina de carga cíclica. Sin embargo, recibo lotes de datos de esta máquina que están organizados en carpetas que contienen el archivo .txt en el que quiero ejecutar el script. ¿Hay alguna forma de pegar el archivo de secuencia de comandos en la carpeta principal que contiene todas las subcarpetas que contienen los archivos .txt y hacer que se ejecute en cada carpeta (abriendo los archivos .txt en las carpetas y ejecutando la secuencia de comandos en cada archivo .txt)? archivo a medida que avanza)?
Tengo la secuencia de comandos configurada en este momento donde puede devolver la ruta del archivo actual donde se encuentra la secuencia de comandos usando , y en este momento, tengo que definir explícitamente (escribir en el script) el nombre del archivo para abrir el archivo de datos.
Usando JMP 17.
¡Gracias de antemano!
secuencias de comandosRe: Recorrer carpetas en un directorioLa función Importación de archivos múltiples () es un atajo fantástico para esto, ya que devuelve una lista de archivos. Sugeriría hacer la importación a través de la GUI primero, luego simplemente copiar el script y modificarlo según sea necesario. Pseudoguión a continuación:
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);
Re: Recorrer carpetas en un directorioY si MFI no hace lo que necesita, FilesInDirectory(...) devuelve una lista de archivos y directorios. isFile() e isDirectory() y FileCreationDate() y FileModificationDate() pueden ayudarlo a obtener lo que necesita. (nombres aproximados, verifique el índice de secuencias de comandos). pensar FilesInDirectory hace no directorios de retorno cuando el recursivo se utiliza la opción. Puede haber elementos en la lista que no sean archivos o directorios, así que use la prueba que tenga más sentido. Pero si MFI lo hace, tendrá un script JSL más simple.
Re: Recorrer carpetas en un directorioGracias por la respuesta, ¡lo intentaré pronto!
Re: Recorrer carpetas en un directorio¡Gracias por los consejos!
Re: Recorrer carpetas en un directorioJed,
Parece que los datos de importación de archivos múltiples están funcionando, sin embargo, no puedo hacer que funcione la función "para cada uno". Parece que no está iterando a través de la lista de archivos creados con la importación de archivos múltiples: obtengo el mismo valor de retorno de mi secuencia de comandos 33 veces (33 es la cantidad de elementos en la lista de archivos).
Re: Recorrer carpetas en un directorioexpandir @Jed_Campbell ejemplo un poco,
for each ({filename}, lstFiles,
//your script for each file
dt = filename; // it isn't really a name, it is a data table handle
... do something with this open data table that dt points to
close( dt, "nosave" ); // if you are done with it
);
Copiar el nombre del archivo a dt es solo para dejar en claro cuál es el elemento de la lista. Puede dt<