代码之家  ›  专栏  ›  技术社区  ›  Nick Cage Wellfair

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

  •  1
  • Nick Cage Wellfair  · 技术社区  · 6 年前

    有人知道如何使用VBScript在Photoshop中打开具有特定文件扩展名的所有文件,而不是单个文件名吗?或者,我可以使用JS函数来实现这一点吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Zev Spitz    4 年前

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

    定位和引用应用程序对象

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

    Link to PDF, p. 22

    VBScript可以访问 文件系统对象 类型,它是 Microsoft脚本运行时 图书馆 文件系统对象 允许您遍历文件夹中的每个文件并检查扩展名。

    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文件;它们必须保存在特定文件夹中,并且只能在应用程序打开后在应用程序上下文中运行。

        2
  •  0
  •   King_Legendary11    6 年前

    您可以打开任何文件

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

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

    search-ms:displayname=Search%20Results%20in%20This%20PC&crumb=fileextension%3A~<.jpg%20OR%20System.Generic.String%3A.jpg&crumb=location:%3A%3A{20D04FE0-3AEA-1069-A2D8-08002B30309D}
    

    不要打开驱动器或驱动器子文件夹中常用的扩展名,否则计算机会崩溃。将文件精简到具有最少子文件夹和文件的文件夹中。

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