estrarre informazioni con la condizione della data: inserisci il nome del file nell'elenco se è maggiore di una data e un'ora specificateCiao,
Sto cercando di ottenere l'elenco dei nomi dei file in una directory con una data condizione se è 1) archivio zip e anche la 2) data di creazione maggiore di aaaa/mm/gg. Di seguito è la mia sceneggiatura. La mia domanda
1) è stato eseguito senza errori ma non ha restituito un elenco vuoto. Non sono sicuro di quale sia il problema (forse la data).
2) come posso impostare il formato di output della data di creazione () su aaaa/mm/gg hh:mm:ss?
3) ci vuole molto tempo per scorrere il percorso 2 perché ho più di 100.000 cartelle zip. C'è un altro modo più veloce per farlo?
Grazie
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] )
),
);
ScriptingRe: estrazione di informazioni con condizione data: inserisci il nome file nell'elenco se è maggiore di una data e un'ora specificateNell'esempio che hai fornito, manca una doppia virgoletta sulla riga path2 = e, inoltre, il riferimento temporale non sembra essere gestito da JMP, quindi modificandolo in una funzione Informat (), si può essere certi che il Il riferimento data/ora di JMP viene interpretato correttamente.
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", "yyyy-mm-ddThh:mm:ss"),
Insert Into( lst2, filelist[i] )
)
);Oggetto: estrazione di informazioni con condizione della data: inserisci il nome del file nell'elenco se è maggiore di una data e un'ora specificateCiao Jim, grazie. che ha risolto il problema. Tuttavia, ci vuole troppo tempo quando una cartella ha troppi file da esaminare. Di seguito sono riportati i nuovi passaggi che ho quindi la prossima volta che voglio solo estrarre i file più recenti, non ci vuole molto tempo come usare la data/ora come filtro (sopra). Non sono sicuro che sia un modo efficace per farlo. C'è un modo migliore per estrarre solo i file più recenti con un tempo più breve?
1) la prima volta ottieni l'intero elenco di file nella cartella definita ( File nella directory(dir) ). Salvato in una colonna di una tabella, "T1" (eseguito solo una volta)
2) dopo qualche tempo, gli ultimi file aggiunti alla stessa cartella. lo script andrà nella stessa cartella e prenderà l'intero filelist come "newlist" (newlist = File nella directory(dir)) .
3) ottenere la colonna nella tabella 1) come elenco, quindi eseguire il ciclo per rimuovere gli elementi da newlist (utilizzo Remove From ()) .
4) fai tutto ciò che è necessario su newlist.
5) aggiungi newlist nella tabella in 1).
6) ripetere i passaggi 2)-5) la prossima volta quando devo recuperare di nuovo i file più recenti.
Qualche suggerimento?
Ri: estrazione di informazioni con condizione data: inserire il nome file nell'elenco se è maggiore di una data e un'ora specificatePotresti provare questo... dovrebbe velocizzarlo
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] )
)
);