扩展脚本系统文件夹检查

     2023-03-29     162

关键词:

【中文标题】扩展脚本系统文件夹检查【英文标题】:extendscript system folder check 【发布时间】:2015-05-19 21:26:52 【问题描述】:

我正在尝试构建一个有助于组织的对话。基本上,它是从我们的项目文件夹中提取所有文件夹并将它们的名称排序并将它们放入下拉列表中。然后,用户将选择他们正在处理的任何项目,输入他们的姓名首字母,添加简短描述,然后最后添加版本号 001。我在下面的脚本中看起来一切正常。一个例子是

XXXPROJECTNAME_XXXINTIALS_XXXDESCRIPTION_001.aep

/Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW/ABC_123_Teaser_DW_TEST_001.aep

我们会把它放在我们文件结构中的一个初始化文件夹中,所以 /Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW.

我需要一些帮助来检查文件夹是否已经存在,如果不存在,则创建该文件夹。我总是知道文件夹应该在哪里(/Volumes/Nacho/Multimedia/PROJECTS/ABC_123_Teaser/01_AE/DW),所以我需要一种方法来对照另一个调用文件夹数组检查它。我觉得我的逻辑很扎实,但编码技能却不是。

如果文件夹确实存在,我们需要检查文件名是否已经存在于该文件夹中。如果不存在,则使用当前名称保存,但如果存在则从 001 递增到 002。

如果有人可以解释如何在文件夹列表排序时使进度条工作,则超级奖励积分。我有大约 125 个文件夹对其进行排序,大约需要 7 秒。我现在的方式是,进度条执行大约 7 秒,然后列表再排序 7 秒。目前进度条是我最少的问题。

win=new Window("palette","AE Naming",[0,0,525,60],resizeable:true,);
panel_1=win.add("panel",[5,5,525,57]);
downlist_1=panel_1.add("dropdownlist",[5,25,185,46] ,["PROJECT LIST"]);
edittext_1=panel_1.add("edittext",[190,25,250,45] ,"INITIALS",readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1);
edittext_2=panel_1.add("edittext",[255,25,380,45] ,"DESCRIPTION",readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1);
edittext_3=panel_1.add("edittext",[385,25,435,45] ,"001",readonly:0,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1);
edittext_4=panel_1.add("edittext",[5,2,435,22] ,"FULL PATH NAME",readonly:1,noecho:0,borderless:0,multiline:0,enterKeySignalsOnChange:1);
but_1=panel_1.add("button",[440,2,510,45],"SAVE");
progress_1=panel_1.add("progressbar", [5,0,510,5], 0, 100);

win.center();
win.show();

but_1.onClick = function() 
                        save();
                    


var layerNameArray = new Array();    
var myFolder = Folder("/Volumes/Nacho/Multimedia/PROJECTS/"); //Search for all Folders in the projects directory
var myJPGFilesArray = myFolder.getFiles(function(f) return f instanceof Folder);


if(myJPGFilesArray !== null)  
for(var n=0; n<myJPGFilesArray.length;n++)  
    $.writeln(myJPGFilesArray[n].name);  
var test = myJPGFilesArray.toString().replace (new RegExp("%20", "g"), " "); //removes the %20 which are spaces
     layerNameArray.push(myJPGFilesArray[n].name); //adds Folders to the Array
var sortMe = myJPGFilesArray.sort(); //Alphabetical sort

//////////////PROGRESSBAR ESTIMATED TIME//////////////
    while(progress_1.value < progress_1.maxvalue)
    
        // this is what causes the progress bar increase its progress
        progress_1.value++; 
        $.sleep(35); //35 is about 7 seconds
    
    $.writeln("Sorting Complete");
///////////////////////////////////////////////////////

     downlist_1.add("item", sortMe[n].name); //Adds sorted Folders to the dropdownlist

downlist_1.onChange = function () (downlist_1.selection)
edittext_1.onChanging = function () (edittext_1.text)
edittext_2.onChanging = function () (edittext_2.text)
edittext_3.onChanging = function () (edittext_3.text)

 function save() 

//var combined = ("Volumes/Nacho/Multimedia/PROJECTS/" + downlist_1.selection + "/01_AE/" + edittext_1.text + "");
var aa = downlist_1.selection.toString(); //PROJECT
var bb = edittext_1.text.toString(); //INITIALS
var cc = edittext_2.text.toString(); //DESCRIPTION
var dd = edittext_3.text.toString(); //VERSION
var ae = "/01_AE/"; //where intials fodler should live
var slash = "/"
var underscore = "_"
var aep = ".aep"
var macVolume = "/Volumes/Nacho/Multimedia/PROJECTS/";
var folderpath = macVolume+aa+ae+bb;
var fullpath = macVolume+aa+ae+bb+slash+aa+underscore+bb+underscore+cc+underscore+dd+aep;

edittext_4.text = fullpath;
alert(folderpath);
alert(fullpath);

//Check to see if folder in folder path exists. if it does continue on. if it doesn't create a new folder.

//Check to see if the file name.aep exitsts AKA fullpath. If it does exist then version up. 001 becomes 002.  If not, just save as fullpath.





我知道解决方案可能非常简单,但我对这一切还是很陌生,无论是 Javascript 还是 Extendscript,所以有时最简单的事情最容易被忽视。非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

可以这么简单

if (!Folder(folderpath).exists)
  Folder(folderpath).create();

while (File(fullpath).exists)

   dd = "000"+String(Number(dd)+1);
   dd = dd.substring(dd.length-3);
   fullpath = macVolume+aa+ae+bb+slash+aa+underscore+bb+underscore+cc+underscore+dd+aep;

folderpath 似乎没有在您当前的代码中使用;我想它也会被塞进fullpath 以及你的最终代码中。

事实上,如果Number(dd)999 并且所有版本都存在,dd 的 3 位数格式可能会导致无限循环。您可能希望现在考虑到这一点,或者在一段时间内承受后果;)

【讨论】:

if (!Folder(folderpath).exists) 文件夹(folderpath).create();部分工作完美!!!! while 部分没有那么多。它可以防止我覆盖文件 001,我仍然可以手动升级。但如果已经检测到版本 001,它不会升级。 @Amaylayinsues:那么需要进行一些调试。 File.exists 的东西应该可以工作,所以它可以在你的完整路径名的构造中。 if (File(fullpath).exists) dd = "000"+String(Number(dd)+1); dd = dd.substring(dd.length-3); fullpath = macVolume+aa+ae+bb+slash+aa+underscore+bb+underscore+cc+underscore+dd+aep; else var target = new File(fullpath) //SAVE PROJECT app.project.save(target); 这让我可以保存我犯的任何明显错误?谢谢 您的代码可能只增加一次dd。我使用了while 循环,因此只要下一个文件还存在,数字就会增加。

Chrome 扩展:检查后台脚本是不是正在运行

】Chrome扩展:检查后台脚本是不是正在运行【英文标题】:ChromeExtension:CheckifbackgroundscriptisrunningChrome扩展:检查后台脚本是否正在运行【发布时间】:2014-07-1823:45:35【问题描述】:我有一个后台脚本,它使用setInterval命令定期执... 查看详情

PHP检查文件扩展名[重复]

】PHP检查文件扩展名[重复]【英文标题】:PHPcheckfileextension[duplicate]【发布时间】:2011-11-2516:37:44【问题描述】:我有一个上传脚本,我需要检查文件扩展名,然后根据该文件扩展名运行单独的函数。有人知道我应该使用什么代... 查看详情

如何查找多个文件、检查重复文件并用 bash、sed 脚本替换

...个脚本,它可以帮助我在bash和sed命令的帮助下搜索具有扩展名(.bak.alt)的文件,然后更改文件的名称,如果它不存在的话.我的意思是搜索(*.b 查看详情

检查不同扩展名的文件夹中的同名文件,如果存在,移出一个

】检查不同扩展名的文件夹中的同名文件,如果存在,移出一个【英文标题】:Checksamenamefilesinfolderwithdifferentextensions,ifexists,moveoneout【发布时间】:2017-01-1905:13:26【问题描述】:每天早上,一个文件夹都会收到相同名称的zip文件... 查看详情

linux之shell脚本实战监控系统的磁盘空间使用率(代码片段)

【Linux之Shell脚本实战】监控系统的磁盘空间使用率一、脚本要求二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、编写disk.sh脚本1.创建脚本目录2.编写disk.sh脚本3.执行测试脚本四、查看脚本执行日志文件五、本次实... 查看详情

如何防止脚本在目录中运行?

...【发布时间】:2012-06-2512:45:50【问题描述】:我的网络根文件夹中有一个用于存储图像的文件目录,我想知道如何保护该文件夹。我阻止人们将脚本上传到该文件夹​​,我检查文件扩展名,如果它不是图像则不会保存到该文件... 查看详情

从列表中指定文件,检查文件大小,如果 GTR 1MB > 检查扩展名,如果 .doc 复制

...:47【问题描述】:我需要你的帮助。我在一个位置的多个文件夹中保存了数千个文档(.doc)。我需要一个批处理脚本来帮助我完成以下工作:Grabfile 查看详情

linux系统无法加载mysql扩展。请检查您的php配置。

...安装wdcpV3一键安装包后进入phpmyadmin后台提示无法加载mysql扩展。请检查您的PHP配置。使用的是PHP7.0.6;mysql5.6.30。PHP扩展:mysqli参考技术A你把php的配置文件中;extension=php_mysqli.dll这行前的;去掉,然后重新启动apache就可以了,试试 查看详情

linux系统自查脚本(代码片段)

文章目录linux自查脚本常用命令总结系统检查CPU检查内存检查硬盘检查网络检查安全检查摘抄linux自查脚本echo"系统巡检脚本:Version`date+%F`"echo-e"\\033[33m*******************************************************系统检查******... 查看详情

vbs脚本权限怎样解决

1、检查系统是否禁止使用了脚本运行,即打开“INTERNET选项”的“安全”选项卡里“自定义级别”,看看“ActiveX空件及服务”禁用的选项。2、运行regsvr32scrrun.dll,即打开运行输入CMD,输入regsvr32scrrun.dll,再回车。3、最关键的一... 查看详情

检查用户是不是安装了 Chrome 扩展程序

】检查用户是不是安装了Chrome扩展程序【英文标题】:CheckwhetheruserhasaChromeextensioninstalled检查用户是否安装了Chrome扩展程序【发布时间】:2011-09-1117:14:08【问题描述】:我正在构建一个Chrome扩展程序,为了让整个事情按我希望的... 查看详情

PHP图片上传安全检查清单

...使应用程序在脚本方面安全?使用.httaccess禁止PHP在上传文件夹中运行。如果文件名包含字符串“php”,则不允许上传。只允许扩展名:jpg、jpeg、gif和png。只允许图像文件类型。禁止使用两种 查看详情

检查系统信息的简单脚本

#!/bin/bash#检查系统信息#2016-09-21#Version 2.0.1#检查当前用户是否为rootif [ `id -u` -ne 0  ]then        echo ‘请使用root用户执行脚本!‘;&nb 查看详情

如何在不检查路径扩展名的情况下检查文件是不是为图像文件?

】如何在不检查路径扩展名的情况下检查文件是不是为图像文件?【英文标题】:HowcanIcheckifafileisanimagefilewithoutcheckingthepathextension?如何在不检查路径扩展名的情况下检查文件是否为图像文件?【发布时间】:2014-08-1804:54:11【问... 查看详情

使用脚本扩展 HTML 文件并覆盖/扩展某些部分标签

】使用脚本扩展HTML文件并覆盖/扩展某些部分标签【英文标题】:ExtendHTMLfilewithscriptandoverride/extendsomesectiontags【发布时间】:2016-06-1903:52:52【问题描述】:我可以使用开源(客户端)来扩展HTML,例如我需要向它添加脚本或更改一... 查看详情

如何在bash中检索文件名或扩展名[重复]

】如何在bash中检索文件名或扩展名[重复]【英文标题】:howtoretrievefilenameorextensionwithinbash[duplicate]【发布时间】:2013-10-0718:52:41【问题描述】:我有一个脚本将一些文件系统数据推送到另一个系统。如果我能告诉自己每个文件实... 查看详情

linux之shell脚本实战统计linux进程相关数量信息(代码片段)

【Linux之shell脚本实战】统计Linux进程相关数量信息一、脚本要求二、检查本地服务器状态1.检查系统版本2.检查系统内核版本三、配置脚本注释模板1.编辑.vimrc文件2.检查模板生效情况四、编写ps_aa.sh脚本五、查看脚本效果一、脚... 查看详情

iloahsfilesystemmountfailed

...载NFS文件系统时,如果出现挂载失败的情况,可以尝试用脚本来自动排查问题,然后针对报错问题进行解决。登录到挂载文件系统失败的Linux服务器中,执行自动检查脚本并检查返回的配置是否正确。挂载(mounting)是指由操作... 查看详情