我正在嘗試編寫一個腳本來打開一個資料夾,其中資料夾名稱的一半包含唯一識別碼。
該資料夾是由使用者與對話方塊中的唯一識別碼一起定義的資料夾的子資料夾。
::結果=對話框(
v 列表( “20XX 年”,年份=編輯文本( “17”,寬度( 100 ))) ,
v 列表( "識別碼", iden=編輯文本( “AA1211”,寬度( 100 )))
) ;
所有子資料夾的名稱都具有相同的結構 ABC-year-iden-xxxx bbb ddddd FFF。
ABC 是固定的。 year 和 iden 由使用者選擇,但 xbd F 是變數。
我嘗試使用 pick file 來獲取文件名,但它不起作用,因為它的最後一位是可變的。
資料夾名稱 = 選擇文件( "\\選擇資料夾","C:\Users\20"||::結果[ “年” ] ||"\"||"ABC-"||::結果[ “年” ] ||"-"||::結果[ “艾登” ] ||“-*” ) ;
另一個選擇是讀取主資料夾中子資料夾的名稱並嘗試匹配它,但我無法用正規表示式找出它。
文件=目錄中的文件( “C:\Users\20”||::結果[ “年” ] ) ;
這個想法是,一旦我有了這個資料夾路徑名,就會在該資料夾中開啟一個與子資料夾同名的檔案。 為此,我有腳本,但我只是在尋找一種方法來識別子資料夾路徑和檔案名稱。
有人可以幫我嗎?
謝謝,
SC
也許使用 Pick Directory() 或者您可以提前聲明它並使用以下內容
RootFolder = "C:/" ; // or Pick Directory()
Year = 2005 ;
SearchTerm = RootFolder || Char(Year) ;
多謝。 我現在知道如何獲取名稱,但如何獲取資料夾的路徑?
@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