Sto cercando di scrivere uno script per aprire una cartella in cui il nome della cartella contiene a metà il nome di un identificativo univoco.
La cartella è una sottocartella di una cartella che viene definita dall'utente insieme all'identificatore univoco in una finestra di dialogo.
:: result = Dialog (
v elenco ( "Anno 20XX", anno = Modifica testo ( "17", larghezza ( 100 ))) ,
v elenco ( "Identificatore", iden = Modifica testo ( "AA1211", di larghezza ( 100 )))
) ;
Il nome di tutte le sottocartelle ha la stessa struttura ABC-year-iden-xxxx bbb ddddd FFF.
ABC è stato risolto anno e iden sono selezionati dall'utente ma xbd F sono variabili.
Ho provato ad ottenere il nome del file con il file pick ma non funziona poiché l'ultimo bit è variabile.
Foldername = Scegli il file ( "\\ Seleziona cartella", "C: \ Utenti \ 20" || :: risultato [ "anno" ] || "\" || "ABC" || :: risultato [ "anno" ] || "-" || :: risultato [ "Iden" ] || "- *" ) ;
Un'altra opzione è leggere i nomi delle sottocartelle nella cartella principale e provare ad abbinarlo ma non riesco a capirlo con espressioni regolari.
files = File nella directory ( "C: \ Users \ 20" || :: risultato [ "anno" ] ) ;
L'idea è che una volta che questo percorso di cartella apre un file in questa cartella con lo stesso nome della sottocartella. Per questo ho la sceneggiatura ma sto solo cercando un modo per identificare il percorso e il nome file della sottocartella.
Qualcuno potrebbe aiutarmi?
Grazie,
SC
Forse usa Pick Directory () o puoi dichiararlo in anticipo e usare quanto segue
RootFolder = "C:/" ; // or Pick Directory()
Year = 2005 ;
SearchTerm = RootFolder || Char(Year) ;
Molte grazie. Ora vedo come ottengo il nome, ma come posso ottenere il percorso della cartella?
@ SC1 ,
RootFolder = "C:\"; // Please fill in your desired folder location
FileList = Files In Directory(RootFolder); // Extract list of all files
DesList = list(); // Declare empty list
UserInput = 2005 ;
for(i = 1, i <= N Items(FileList), i++,
If(!IsMissing(Regex(Char(FileList[i]),Concat(Char(UserInput),"-","ABC|FFF")),
Insert Into(DesList,FileList[i]);
);
);
// This will be able to capture all files which are of the format 2005-ABC or 2005-FFF . You can expand on the or clause based on your need