//3.4.2017 15:18 //N. Vischer //version 1.0d //Copies all .ojj files to a newly created "shadow" directory tree //The root of the new tree will either be set beside the source root, //or can be defined by variable destRoot. //Old (.ojj) files with same name will be overwritten. //Old directories with same name will be kept. var srcFileList = ""; var srcDirList = ""; var destRootParent = ""; macro "Copy '.ojj' files to Shadow Directory"{ verbose = false; print("\\Clear"); showMessage("Click OK, then choose a source directory"); srcDir = getDirectory("Choose Source Directory "); srcParent = File.getParent(srcDir); b = getBoolean("Choose a destination directory", "Beside Source", "Choose..."); if(!b){ showMessage("Click OK, then choose a destination directory"); destParent = getDirectory("Choose Destination Directory "); } else destParent = srcParent; srcDirName = File.getName(srcDir); shadowName = srcDirName + "_ojj_Shadow"; destRoot = destParent + "/" + shadowName +"/"; srcRoot = srcDir; nDirs = 0; nFiles = 0; print("srcDir = ", srcDir); print("destDir = ", destRoot); listFiles(srcDir);///////////////////////////////// print("\n=== src files"); print(srcFileList); if(verbose){ print("\n=== src directories"); print(srcDirList); } print("\n=== dest files"); srcFileList = split(srcFileList,"\t\n"); len = srcFileList.length; destFileList = newArray(len); for(jj = 0; jj < len; jj++){ destFileList[jj] = "" + replace(srcFileList[jj],srcRoot, destRoot); print(destFileList[jj]); } if(verbose) print("\n=== dest directories"); srcDirList = split(srcDirList,"\t\n"); dDirs = srcDirList.length; destDirList = newArray(dDirs); newDirs = 0; for(jj = 0; jj < dDirs; jj++){ thisDir = replace(srcDirList[jj],srcRoot, destRoot); for(kk = 0; kk