Photoshop 的文件备份

平面设计 adobe-photoshop 插入
2022-02-20 07:38:17

我使用 Photoshop 已经有很长时间了,每隔一段时间我都会处理一个文件,有时很匆忙,有时只是懒惰……发生的事情是我最终毁了它。

我保存,继续我的一天,然后我稍后打开它只是为了意识到/记住以前的版本更好,只有当我像往常一样将它保存为多个版本时..但有时它会发生并且我不这样做'T。

您是否知道插件或附加组件或这样做的东西,Photoshop 中是否有一些我不知道的选项?我看到了一些关于 Recovery Information Under 的新功能,Preferences > File Handling但我发现它没有用。我想要一些可以防止我覆盖的东西,或者更确切地说,它甚至不会阻止我,它只是保存一个不同的文件,最后有一个递增的数字.

(我需要的是在保存时不会让我覆盖文件的东西,而是创建另一个具有完全相同名称和最后一个数字的文件。像 Save as 但不是 Saves As 而不是我写一个不同的文件每次都命名。我不想把它作为我日常工作的一部分,为了安全起见,我永远不会后悔我失去了一些我花了几个小时工作并在几分钟内毁掉它的东西,然后保存了粪便并在以后想知道它。)

例如,当我多次使用默认Ctrl+ (保存)时,我希望它自动执行:S

  • ThisPsdFile-1.psd
  • ThisPsdFile-2.psd
  • ThisPsdFile-3.psd

[请克制这样的评论:“你太懒了,blabla ..”它有时会发生,我希望这个错误永远解决......我安装一次并繁荣,就是这样。

感谢您的时间。

4个回答

行。我早该知道,我永远无法像现在这样离开。新的东西!

我最终在 github 上做了一个 repo,因为还有改进的空间。

您可以在此处下载文件:在 github 中自动保存 PSD »

在此处输入图像描述

现在安装起来稍微容易一些,并且.psd仅在您希望时才保存附加文件。


安装

  • 下载文件:自动保存 PSD.jsx 和自动保存 PSD.atn 自动保存 PSD.jsx:将此文件放入{Photoshop_root}\Presets\Scripts\Auto Save PSD.jsx

    • 下次打开 Photoshop 时,您会在以下位置找到脚本:File > Scripts > Auto Save PSD. 如果 Photoshop 已经在运行,请重新启动它。
  • 自动保存 PSD.atn:双击此文件,以便将其添加到 Photoshop。

    • 您可以通过以下方式确保它已添加:Window > Actions并确保您Auto Save PSD folder在“操作”面板底部找到。
  • 在 Photoshop 中添加快捷方式:

    • Edit > Keyboard shortcuts...(Mac:Alt + Shift + Cmd + K。Windows Alt + Shift + Ctrl + K:)
    • 选择Shortcuts for: [Applications menus]
    • File > Scripts > Auto Save PSD. (打开文件后,您需要向下滚动很多才能找到Scripts在此处输入图像描述
  • 安装完成

用法:

每次您想保存其他文件时,请按您为脚本提供的快捷方式。

新文件将保存在原始文件旁边的文件夹中。



在这种情况下 github 页面已关闭

所需的操作很容易设置:

  • 打开一个新文档
  • 将其保存为 .psd
  • 在其中进行更改
  • 为操作创建一个新文件夹。命名它:Auto Save PSD
  • 开始在该文件夹中记录新动作。给它命名save
    • 按热键保存。麦克:Cmd + S窗户:Ctrl + S
  • 停止录制动作。

将其复制并制作成一个文件Auto Save PSD.jsx

    // (c) Copyright 2005.  Adobe Systems, Incorporated.  All rights reserved.

// Auto Save PSD.jsx 1.3.
// This file was modified out of "Save Extra JPEG.jsx".
// Modifications by Joonas Pääkkö
// https://github.com/joonaspaakko

/*

    <javascriptresource>
    <name>$$$/JavaScripts/AutoSavePSD/Menu=Auto Save PSD</name>
    <category>Auto Save</category>
    <enableinfo>true</enableinfo>
    <eventid>64feff0a-8271-436f-8c59-d2105497d902</eventid>
    </javascriptresource>

*/

// enable double clicking from the Macintosh Finder or the Windows Explorer
#target photoshop

// on localized builds we pull the $$$/Strings from a .dat file, see documentation for more details
$.localize = true;

try {

    // Get the currently active document.
    var doc = app.activeDocument;

    // If document has been saved once...
    if ( doc.saved ) {
        // One document save is needed so that we know where to save the psd.
        doc.save();
    }
    // Document has not been saved yet...
    else {

        // An action is triggered to prompt save as dialog.
        // You'd think that this would be easy to do, but I
        // couldn't figure out a better way for doing this.
        app.doAction('save','Auto Save PSD');

    }

    // Save additional psd file...
    var data = GetDataFromDocument( doc );
    AutoSavePSD( doc, data );



} // try end

catch( e ) {
    // always wrap your script with try/catch blocks so you don't stop production
    // remove comments below to see error for debugging
    // alert( e );
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
// Function: AutoSavePSD
// Use: save the current document as a copy
// Input: a document must be active
// Params: folder, filename, extension
// Output: file saved as a copy next to the current active document
///////////////////////////////////////////////////////////////////////////////
function AutoSavePSD( doc, data ) {


        // Save as .psd
        var psd_Opt = new PhotoshopSaveOptions();
        psd_Opt.layers = true; // Preserve layers.
        psd_Opt.embedColorProfile = true; // Preserve color profile.
        psd_Opt.annotations = true; // Preserve annonations.
        psd_Opt.alphaChannels = true; // Preserve alpha channels.

         // Excuse me sir. What time is it? ...where am I?
        var time                      = new Date();
        var seconds                   = time.getSeconds();
        var sec                       = seconds < 10 ? '0' + seconds : seconds;
        var minutes                   = time.getMinutes();
        var min                       = minutes < 10 ? '0' + minutes : minutes;
        var hours                     = time.getHours();
        var hour                      = hours < 10 ? '0' + hours : hours;
        var day                       = time.getDate();
        var dd                        = day < 10 ? '0' + day : day;
        var month                     = time.getMonth() + 1;
        var mm                        = month < 10 ? '0' + month : month;
        var yyyy                      = time.getFullYear();
        var date                      =  yyyy + '-' + mm + '-' + dd + '-' + hour + '-' + min + '-' + sec;

        // New folder for the auto saves...
        var fileName                  = data.fileName;
        var folderPath                = data.folder + '/' + fileName + ' (-autoSave-)/';
        var asFolder                  = new Folder( folderPath );

        // If folder doesn't exist, let's create one.
        if( !asFolder.exists ) asFolder.create();

        // Creates the additional .psd file.
        doc.saveAs( File( folderPath + fileName + ' ' + date + '.psd' ), psd_Opt, true );
}

///////////////////////////////////////////////////////////////////////////////
// Function: GetDataFromDocument
// Usage: pull data about the document passed in
// Input: document to gather data
// Output: Object containing folder, fileName, fileType, extension
///////////////////////////////////////////////////////////////////////////////
function GetDataFromDocument( inDocument ) {

    var data           = new Object();
    var fullPathStr    = inDocument.fullName.toString();
    var lastDot        = fullPathStr.lastIndexOf( "." );
    var fileNameNoPath = fullPathStr.substr( 0, lastDot );
    var lastSlash      = fullPathStr.lastIndexOf( "/" );

    data.extension     = fullPathStr.substr( lastDot + 1, fullPathStr.length );
    data.fileName      = fileNameNoPath.substr( lastSlash + 1, fileNameNoPath.length );
    data.folder        = fileNameNoPath.substr( 0, lastSlash );
    data.fileType      = inDocument.fullName.type;

    return data;

}

这与您的建议不太一样,但是如果您正在运行 mac,为什么不设置每小时运行的时间机器,那么您总是可以恢复到以前的版本?windows也必须有一个等价物

这些天我做的开发多于设计,使用源代码管理 (SCM) 是很常见的(跟踪更改,合并多个用户在同一个项目中工作,等等)。

常见的 SCM 选项是gitmercurialsvn等。对于设计师来说,仍然存在一些障碍。我在一家媒体机构工作了几年,我已经设置了一个 SVN 服务器。最困难的部分不是管理它或处理合并,而是说服设计师使用它。我已经解释了明显的优势并安装了SCPlugin,因此无需使用命令行界面。根据我的经验,主要问题是:

  1. 理解/习惯提交的工作方式
  2. 习惯/习惯于承诺
  3. 大多数设计资产都是二进制文件(不是 ascii),因此合并相同文件的版本并不能很好地工作

如果您不想安装自己的 SCM 服务器,您可以随时使用以下站点:

  • github
  • 比特桶
  • Google Code Free 解决方案通常意味着您的存储库对所有人都是公开/可见的,但您可以选择为托管的私有存储库选项支付少量费用。

对于 svn,有一些带有漂亮图标的商业应用程序,例如VersionsCornerstone对于 git/mercurial,我推荐SourceTree

长话短说,这个想法是版本控制是你所需要的,但我认为越“对设计者友好”(没有命令行胡言乱语)越好。

我认为提供“保存版本”菜单项的 Photoshop 脚本在幕后处理提交更新并不难。

问题是从头开始编写一些东西或使用现有选项是否有意义。有几个商业选项听起来很简单,但我个人没有尝试过:

  1. 只需使用DropBoxPackrat 似乎提供了您需要的选项。
  2. 试试PixelNovel 的 SVN Photoshop 插件

高温高压

超级用户上有人询问“监视文件夹”(https://superuser.com/questions/226828/how-to-monitor-a-folder-and-trigger-a-command-line-action-when-a-file-是创建的)。该脚本是特定于任务的,但显示了概念证明。

我还注意到 Robocopy(用于 xp 的 ms devkit;Windows Vista 及更高版本上的标准)具有“/mot:m”和“/mon:n”开关,当m几分钟过去或n文件已分别更改时,它们将重新运行相同的 robocopy 命令集.

这里的想法是您保存到一个特殊的监视文件夹,上面的命令将检测更改并处理重命名和/或将文件移动到非监视文件夹。您希望在开始工作之前手动运行它们,然后在完成会话后终止进程。

Robocopy 无法处理自动重命名,因此基于脚本的方法可能更好。请注意,上面引用的脚本会检查文件(当然可以更改)。Robocopy 可以处理新的和/或不同的文件。