我正在尝试编写一个脚本来打开一个文件夹,其中文件夹名称的一半包含唯一标识符。
文件夹是文件夹的子文件夹,由用户与对话框中的唯一标识符一起定义。
::结果=对话框(
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