Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Verlinkte Dateien in einem Ordner sammeln

Verlinkte Dateien in einem Ordner sammeln

-hans-
Beiträge gesamt: 746

7. Sep 2012, 18:39
Bewertung:

gelesen: 1873

Beitrag als Lesezeichen
Zur Ursprungsfrage im AS-Forum:http://www.hilfdirselbst.ch/..._P500432.html#500432

Meine Lösung dazu als ExtendScript:
Code
var myDoc = app.documents[0];   
if(!myDoc.isValid){alert('Nothing to do for this script as no ID-file is open.'); exit()}
var myDocName = myDoc.name.replace(/.indd/, '');
var theLinkedFilesPaths = myDoc.links.everyItem().filePath;

var myExportPath = "~/Desktop/Test/"; //Hier auf korrekte Notation achten !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
var myTargetFolderPath = myExportPath + myDocName + '/';

var checkFolder = Folder(myTargetFolderPath).create();
if(checkFolder === false){alert('Nothing to do for this script as the target Folder could not be created.'); exit()}


for (var myCounter = 0; myCounter < theLinkedFilesPaths.length; myCounter ++ )
{
theFile = new File(theLinkedFilesPaths[myCounter]);
if(!theFile.exists){continue}
theFileName = theFile.displayName;
theTargetPath = myTargetFolderPath + theFileName

var checkFile = File(theFile).copy(theTargetPath)
if(checkFile === false){displayDialog(theFile.displayName)}

}

function displayDialog(aString){
var infoWindow = new Window("palette");
infoWindow.add("statictext", undefined, "Problem: File with name " + aString+ " couldn't be copied.");
infoWindow.show();
$.sleep(1000);
infoWindow.close();
}

Lieben Gruß

Hans-Gerd Claßen

Verlinkte Dateien in einem Ordner sammeln

Uwe Laubender
Beiträge gesamt: 5004

9. Sep 2012, 09:03
Bewertung:

gelesen: 1803

Beitrag als Lesezeichen
Hallo, Hans-Gerd!

Ich gebe mal wider, was mir zum Thema Duplizieren von Dateien per Script dazu einfällt. Man kann ja beide Welten mischen: JavaScript mit AppleScript.

Weshalb JavaScript mit etwas AppleScript verrühren?

Wahrscheinlich, weil es im Rahmen eines größeren, bereits ausgearbeiteten JavaScripts laufen soll.

Zugegeben, die Adobesche ExtendScript-Fassung von JavaScript unterstützt auch die "File" und "Folder"-Klasse mit entsprechenden Methoden für's Kopieren, aber es scheint da einen kleinen, entscheidenden Haken zu geben; einen Vorteil von AppleScript, wenn es darum geht Dateien zu kopieren:

AppleScript verändert (im Gegensatz zu JavaScript) die TimeStamp-Eintragungen der kopierten Datei nicht. Jedenfalls wird das in diesen beiden Threads ausführlich thematisiert (ich selbst hab' die Aussage noch nicht verifiziert):

Copy Files without changing date and time
http://forums.adobe.com/message/4671706#4671706

Copy Files to another location without Changing DateModified using Javascript

http://forums.adobe.com/thread/1061444?tstart=0
*****
Mit herzlichem Gruß,
Uwe Laubender

Verlinkte Dateien in einem Ordner sammeln

-hans-
Beiträge gesamt: 746

9. Sep 2012, 10:43
Bewertung:

gelesen: 1780

Beitrag als Lesezeichen
N'abend,

die Bridge hat das Problem nicht.

Code
 
#target Bridge

var thumbnail = new Thumbnail(File.openDialog());
var target = new Thumbnail(Folder.selectDialog());
thumbnail.copyTo(target)

Lieben Gruß

Hans-Gerd Claßen

Verlinkte Dateien in einem Ordner sammeln

Uwe Laubender
Beiträge gesamt: 5004

9. Sep 2012, 10:56
Bewertung:

gelesen: 1772

Beitrag als Lesezeichen
Hallo, Hans-Gerd!
Ein sehr guter Hinweis.

Mit dem Scripten der Anwendung "Bridge" hatte ich mich bislang noch nicht beschäftigt.
Wird also Zeit, dass ich mal dazu komme…

Um Dein Script dann in ein InDesign-Script einzubauen, wird dann wohl noch ein wenig "BridgeTalk" benötigt.

Für Alle JavaScript-Anwender, die noch nicht von "BridgeTalk" gehört haben: "BridgeTalk" ist eine Möglichkeit innerhalb eines JavaScripts zwischen verschiedenen Programmen der CS hin- und herzuwechseln und Variablen und andere Konstrukte zu übergeben.

Ist aber auch nicht ohne und hat absolut nichts mit der CS-Anwendung "Bridge" zu tun.
*****
Mit herzlichem Gruß,
Uwe Laubender