Ich versuche, eine Batchdatei für eine benutzerdefinierte Aktion auszuführen. Die Aktion macht eine Sache: Datei -> Exportieren -> Pfade zu Illustrator.
Wenn ich diese Aktion jedoch als Batch für mehrere Dateien ausführe, speichert sie jede Datei mit demselben Namen. Wenn ich File1.psd
es also öffne und speichere working/File1.ai
, dann führe den Stapel auf File2.psd
, File3.psd
, aus und File4.psd
was ich erhalte, ist working/File1.ai
eine aus exportierte Illustrator-Datei File4.psd
. Dateien 2 und 3 wurden überschrieben (ebenso File1.ai
offensichtlich).
Hier ist mein Batch-Dialog:
Wenn ich das Ziel z. B. auf Ordner ändere, werden alle Dateien erneut als PSD gespeichert, zusätzlich zum Überschreiben der AI-Dateien. Wie kann ich diesen Export für eine beliebige Anzahl von PSD-Dateien ausführen und die gleiche Anzahl von AI-Dateien am anderen Ende erhalten?
BEARBEITEN: Durch erneutes Aufzeichnen der Aktion und Verweigern des Dialogfelds wird das Dialogfeld beim ersten Durchlauf des Stapels angezeigt, und nachfolgende Dateien werden unter dem Namen gespeichert, den ich in diesem Dialogfeld angegeben habe (mit anderen Worten, ein Dialogfeld für alle Dateien).
BEARBEITEN 2: Nach der folgenden Antwort habe ich versucht, im Ordner zu speichern und Aktionsspeicherbefehle zu überschreiben (Screenshot):
Dies führte zu den gleichen Ergebnissen. :(
Hier ist die Aktion, die ich ausführe:
ETA 3: Basierend auf den Kommentaren könnte mein Problem darin bestehen, dass der Befehl „Exportieren -> Pfade zu Illustrator“ das Kontrollkästchen „Aktion außer Kraft setzen unter“ nicht berücksichtigt, was bedeutet, dass ich nur mit diesem Mangel von Photoshop feststecke.
Wählen Sie einen Zielordner (letzte nicht ausgegraute Option) und wählen Sie dann „Aktion außer Kraft setzen unter“ darunter. Sie können sehen, dass darunter „ Starting serial#“ steht, was darauf hinweist, dass jede Datei mit einer nächsten Nummer benannt wird.
File > Automate > Batch..
Ich nehme an?Eine Möglichkeit, damit zu arbeiten, ist die Verwendung von Skripten (Applescript, VBScript, Javascript). Phtoshop stellt den Exportbefehl ( exportDocument (exportIn [, exportAs][, options])
) bereit (siehe zum Beispiel das Dokument von Adobe photoshop_cs4_javascript_ref.pdf
) und Sie müssen also nur ein Dokument öffnen und dem Befehl dann einen Zieldateinamen und Optionen zuführen.
Eine schnelle Google-Suche brachte mich zu diesem Skript von Photoshop for Geeks ( http://www.tranberry.com/panels/ ) NOT MY CODE:
// openFolderTemplate.jsx
// Copyright 2007
// Written by Jeffrey Tranberry
// Photoshop for Geeks Version 1.0
/*
Description:
This script is a template script that will
open and process a folder of images
*/
// enable double clicking from the
// Macintosh Finder or the Windows Explorer
#target photoshop
// Make Photoshop the frontmost application
// in case we double clicked the file
app.bringToFront();
///////////////////////////
// SET-UP //
///////////////////////////
// A list of file extensions to skip, keep them lower case
gFilesToSkip = Array( "db", "xmp", "thm", "txt", "doc", "md0", "tb0", "adobebridgedb", "adobebridgedbt", "bc", "bct" );
// Pops open a dialog for the user to
// choose the folder of documents to process
var inputFolder = Folder.selectDialog("Select a folder of documents to process");
// Pops open a dialog for the user to
// set the output folder
var outputFolder = Folder.selectDialog("Select a folder for the output files");
///////////////////////
// MAIN //
//////////////////////
// Open Folder of Images
OpenFolder();
// show the path to an output folder
alert(outputFolder);
///////////////////////////
// FUNCTIONS //
///////////////////////////
// Given the a Folder of files, open them
function OpenFolder() {
var filesOpened = 0;
var fileList = inputFolder.getFiles();
for ( var i = 0; i < fileList.length; i++ ) {
// Make sure all the files in the folder are compatible with PS
if ( fileList[i] instanceof File && ! fileList[i].hidden && ! IsFileOneOfThese( fileList[i], gFilesToSkip )) {
open( fileList[i] );
filesOpened++;
/////////////////////////////////////
// Put all your processing functions... //
/////////////////////////////////////
// Alert and show the document name
alert(app.activeDocument.name);
// Cloes the file without saving
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
////////////////////////////////////////////
// ...in the area between these two comments. //
////////////////////////////////////////////
}
}
return filesOpened;
}
// given a file name and a list of extensions
// determine if this file is in the list of extensions
function IsFileOneOfThese( inFileName, inArrayOfFileExtensions ) {
var lastDot = inFileName.toString().lastIndexOf( "." );
if ( lastDot == -1 ) {
return false;
}
var strLength = inFileName.toString().length;
var extension = inFileName.toString().substr( lastDot + 1, strLength - lastDot );
extension = extension.toLowerCase();
for (var i = 0; i < inArrayOfFileExtensions.length; i++ ) {
if ( extension == inArrayOfFileExtensions[i] ) {
return true;
}
}
return false;
}
Sie können einen Quell- und einen Zielordner auswählen, und das Skript listet die Dateien auf. Sie können dann Ihre eigene Funktion in einfügen do magic
.
Horatio
pjmorse
Horatio
pjmorse