使用脚本一次打开多个单独打包的 indesign 文件
Open multiple separately packaged indesign files at once with script
我觉得我已经非常接近实现它了,我只需要再添加一个级别。
到目前为止,当您 运行 脚本时,下面的代码将打开 select 文件夹中的每个 indesign 文件。
var myFolder = Folder.selectDialog("Select Indesign Folder");
var myIndsnFiles = myFolder.getFiles("*.indd");
for(k=0; k<myIndsnFiles.length; k++)
{
app.open(myIndsnFiles[k]);
}
例如,假设这个包含多个 indesign 文件的文件夹的路径是 desktop/ads/client1,但在 ads 文件夹中有多个文件夹(client1、client2、client3 等),每个文件夹都包含一个 indesign文件。
我想要做的是 select 广告文件夹和 运行 脚本,让它自动搜索每个文件夹并打开里面的 indesign 文件。
我希望我解释得足够清楚,可以理解。提前致谢。
我做了自己的递归函数来获取文件,无论它们在哪个子文件夹中……
var api = {
getFiles : function ( fo, aExtensions, bRecursive, aFiles, includeFolder )
{
var exts = aExtensions? aExtensions.join("|") : ".+" ;
var pattern = new RegExp ( "\."+exts+"$", "g" );
var files = aFiles? aFiles : [];
var filterFunction = function(file)
{
return pattern.test ( file.name );
}
if ( bRecursive )
{
var foFiles = fo.getFiles();
while ( f = foFiles.shift() )
{
if ( f instanceof Folder )
{
if (includeFolder===true) files[ files.length ] = f;
this.getFiles ( f, aExtensions, true, files );
}
if ( f instanceof File && pattern.test ( f.name ) )
files[ files.length ] = f;
}
return files;
}
else
{
return fo.getFiles ( filterFunction );
}
},
}
var fo = Folder.selectDialog(), u, files;
if ( fo ) {
files = api.getFiles ( fo, ["indd"], true, u, false );
alert( files.join("\r") );
}
我觉得我已经非常接近实现它了,我只需要再添加一个级别。
到目前为止,当您 运行 脚本时,下面的代码将打开 select 文件夹中的每个 indesign 文件。
var myFolder = Folder.selectDialog("Select Indesign Folder");
var myIndsnFiles = myFolder.getFiles("*.indd");
for(k=0; k<myIndsnFiles.length; k++)
{
app.open(myIndsnFiles[k]);
}
例如,假设这个包含多个 indesign 文件的文件夹的路径是 desktop/ads/client1,但在 ads 文件夹中有多个文件夹(client1、client2、client3 等),每个文件夹都包含一个 indesign文件。
我想要做的是 select 广告文件夹和 运行 脚本,让它自动搜索每个文件夹并打开里面的 indesign 文件。
我希望我解释得足够清楚,可以理解。提前致谢。
我做了自己的递归函数来获取文件,无论它们在哪个子文件夹中……
var api = {
getFiles : function ( fo, aExtensions, bRecursive, aFiles, includeFolder )
{
var exts = aExtensions? aExtensions.join("|") : ".+" ;
var pattern = new RegExp ( "\."+exts+"$", "g" );
var files = aFiles? aFiles : [];
var filterFunction = function(file)
{
return pattern.test ( file.name );
}
if ( bRecursive )
{
var foFiles = fo.getFiles();
while ( f = foFiles.shift() )
{
if ( f instanceof Folder )
{
if (includeFolder===true) files[ files.length ] = f;
this.getFiles ( f, aExtensions, true, files );
}
if ( f instanceof File && pattern.test ( f.name ) )
files[ files.length ] = f;
}
return files;
}
else
{
return fo.getFiles ( filterFunction );
}
},
}
var fo = Folder.selectDialog(), u, files;
if ( fo ) {
files = api.getFiles ( fo, ["indd"], true, u, false );
alert( files.join("\r") );
}