Javascript Photoshop脚本删除所有文本层

Javascript Photoshop脚本删除所有文本层,javascript,vbscript,applescript,photoshop,Javascript,Vbscript,Applescript,Photoshop,我有太多的文件要处理,所以我尝试在Windows 7 pro x64上使用Adobe Photoshop CC 2014中的*.jsx脚本文件删除所有文本层 我在互联网上找到这部分代码,当我编辑时,我得到了错误 // test 1 #target photoshop var myLayers = app.activeDocument.layers.everyItem().getElements(); for(var i=myLayers.length-1;i=0;i--){

我有太多的文件要处理,所以我尝试在Windows 7 pro x64上使用Adobe Photoshop CC 2014中的
*.jsx
脚本文件删除所有文本层

我在互联网上找到这部分代码,当我编辑时,我得到了错误

// test 1

#target photoshop

var myLayers = app.activeDocument.layers.everyItem().getElements();
    for(var i=myLayers.length-1;i=0;i--){
        if(myLayers[i].LayerKind.TEXT){
        myLayers[i].remove();
        continue;
    }
}

// test 2 

var theLayers = collectEmptyGroups(app.activeDocument, []);  
//alert (theLayers.join("\n"));  
for (var x = 0; x < theLayers.length; x++) {  
  try {theLayers[x].remove()}  
  catch (e) {}};  
////// function collect all layers //////  
function collectEmptyGroups (theParent, allLayers) {  
  if (!allLayers) {var allLayers = new Array}  
  else {};  
  var theNumber = theParent.layers.length - 1;  
  for (var m = theNumber; m >= 0;m--) {  
  var theLayer = theParent.layers[m];  
// apply the function to layersets;  
  if (theLayer.typename == LayerKind.TEXT) {  
// allLayers.push(theLayer)  
  }  
  else {  
  allLayers = (collectEmptyGroups(theLayer, allLayers))  
// this line includes the empty layer groups;  
if (theLayer.layers.length == 0) {allLayers.push(theLayer)}  
  }  
  };  
  return allLayers  
  };
//测试1
#目标photoshop
var myLayers=app.activeDocument.layers.everyItem().getElements();
对于(var i=myLayers.length-1;i=0;i--){
if(myLayers[i].LayerKind.TEXT){
myLayers[i].remove();
继续;
}
}
//测试2
var theLayers=collectEmptyGroup(app.activeDocument,[]);
//警报(layers.join(“\n”);
对于(var x=0;x=0;m--){
var theLayer=父层[m];
//将该函数应用于LayerSet;
如果(theLayer.typename==LayerKind.TEXT){
//所有层。推(层)
}  
否则{
allLayers=(CollectEmptyGroup(层,所有层))
//该行包括空层组;
如果(theLayer.layers.length==0){allLayers.push(theLayer)}
}  
};  
返回所有层
};

你能帮帮我吗。

你发布的代码看起来不太干净,很难判断出是什么问题

以下是一种非常简单的方法(在Win 10 x64上使用Photoshop CS6进行测试):

函数findLayersText(层){
对于(var i=0,len=layers.length;i0){
browseLayerSets(集合[i].层集合);
}
}
}
//检查文本层的所有根艺术层
FindLayerText(app.activeDocument.artLayers);
//浏览所有根图层集(如果有)
browseLayerSets(app.activeDocument.layerSets);

你发布的代码看起来并不干净,很难判断出是什么问题

以下是一种非常简单的方法(在Win 10 x64上使用Photoshop CS6进行测试):

函数findLayersText(层){
对于(var i=0,len=layers.length;i0){
browseLayerSets(集合[i].层集合);
}
}
}
//检查文本层的所有根艺术层
FindLayerText(app.activeDocument.artLayers);
//浏览所有根图层集(如果有)
browseLayerSets(app.activeDocument.layerSets);

你知道你在做什么吗?你知道你在做什么吗?我真的很感谢你的帮助,我在这类脚本中的级别很低,在win64和photoshopCC2014i上运行得很好。我真的很感谢你的帮助,我在这类脚本中的级别很低,在win64和photoshopCC2014上运行得很好
function findLayersText (layers) {
    for (var i = 0, len = layers.length; i < len; i++) {
        if (layers[i].kind == "LayerKind.TEXT") {
            layers[i].remove();
            len--;
        }
    }
}

//check all art layers then
//check if there are any inner layer sets
function browseLayerSets (sets) {
    for (var i = 0, len = sets.length; i < len; i++) {
        findLayersText(sets[i].artLayers);

        if(sets[i].layerSets.length > 0){
            browseLayerSets(sets[i].layerSets);
        }
    }
}

//check all root art layers for text layer
findLayersText(app.activeDocument.artLayers);
//browse all root layer sets (if any)
browseLayerSets(app.activeDocument.layerSets);