在编写Photoshop脚本时,用JPG扩展名打开文件夹中的所有文件

时间:2018-05-16 08:48:04

标签: javascript vbscript photoshop-script

有谁知道如何在Photoshop中打开所有具有特定文件扩展名的文件而不是使用VBScript的单个文件名?或者,我可以使用JS函数来执行此操作吗?

2 个答案:

答案 0 :(得分:0)

您可以打开任何文件

double num = Math.Round(double.Parse(value), 4);

对于文件扩展名,请尝试将位置更改为搜索。例如,要从我的电脑搜索.jpg,该位置是

CreateObject("WScript.Shell").Run("""ENTER LOCATION""")

不要在驱动器或驱动器子文件夹中打开常用扩展程序,否则您的计算机将崩溃。将文件分区到具有最少子文件夹和文件的文件夹中。

您也可以打开这样的应用程序,也可以在批处理文件中使用system32。 我不确定这是否是你想要的答案,因为它不清楚。

答案 1 :(得分:0)

如果我理解正确,可以通过Windows脚本宿主将VBScript用于外部自动化Photoshop。

  

定位和引用应用程序对象

     

因为您从Photoshop应用程序外部运行AppleScript和VBScript脚本,所以脚本应该做的第一件事是指示命令在Photoshop中执行

Link to PDF, p. 22

VBScript可以访问 FileSystemObject 类型,该类型是 Microsoft Scripting Runtime 库的一部分。 FileSystemObject 允许您遍历文件夹中的每个文件并检查扩展名。

Option Explicit

Dim app
Set app = CreateObject("Photoshop.Application")

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim fle
For Each fle In fso.GetFolder("c:\path\to\folder").Files
    If fso.GetExtensionName(fle.Path) = ".jpeg" Then

        'Issue the command to open the file in the default format
        'This uses the Open method from the Photoshop object model
        app.Open fle.Path

    End If
Next

参考文献:

请注意,相同的代码可以写在外部控制的Javascript文件中:

var app = new ActiveXObject('Photoshop.Application');
var fso = new ActiveXObject('Scripting.FileSystemObject');

var enumerator = new Enumerator(fso.GetFolder('c:\\path\\to\\folder').Files);
while (!enumerator.atEnd()) {
    var filepath = enumerator.item().Path;
    if (fso.GetExtensionName(filepath) == '.jpeg') {

        app.Open(filepath);

    }
    enumerator.moveNext();
}

但是“脚本编写指南”中的示例使用内部执行的Javascript文件;它们必须保存在特定的文件夹中,并且只能在应用程序打开后运行,并且只能在应用程序的上下文中运行。