是否可以批量加载modules目录下所有的模块

在加载模块时,必须指定到.dos文件的完整路径,但是大的工程文件中可能包含多个.dos文件,甚至多级文件目录,希望可以加载整个目录下的全部module即.dos文件。请问有什么好办法

请先 登录 后评论

1 个回答

Yating Xie

解决办法:

用脚本批量生成use语句的脚本,之后复制粘贴到需要的脚本中

 

使用示例:

1.定义useModulesFromPackage函数

  • 入参:

    • packagePath :server端文件夹路径

    • packageName :use module格式的文件夹路径

  • 返回值:一个字符串

    def useModulesFromPackage(packagePath, packageName){
    	fileArr = exec filename from files(packagePath) where isDir=false and filename like "%.dos"
    	fileFolderArr = exec filename from files(packagePath) where isDir=true
    	script = ""
    	
    	if(fileArr.size()==0 && fileFolderArr.size()==0) return script
    	
    	for (fileName in fileArr){
    		script += "use "+packageName+ "::" + strReplace(fileName, ".dos", "") + "\n"
    	}
    	for (folderName in fileFolderArr){
    		script += useModulesFromPackage(packagePath+"/"+folderName, packageName+"::"+folderName)
    	}
    	return script
    }


2. 调用 useModulesFromPackage函数,之后复制输出的内容即可

modules的目录结构:attachments-2023-01-uFP3NMhB63c6723033824.png

以下脚本生成Calculation目录下的所有module的use语句

packagePath = getHomeDir()+"/modules/Calculation"
packageName = "Calculation"
useModulesFromPackage(packagePath, packageName)

 执行效果:

attachments-2023-01-S71XKghW63c6716c5aa47.png

请先 登录 后评论