[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Teile von Datei- und Pfadnamen verwenden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 08:50
Beitrag # 1 von 12
Bewertung:
(4221 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich bin neu hier und auch ziemlich neu bei im Thema scripting mit InDesign. Daher möge die folgende Anfängerfrage bitte mit Nachsicht betrachtet werden. Ich konnte mit der Forum-Suche keine Lösung finden.

Mein Problem ist, dass ich eine geöffnete INDD-Datei als IDML speichern möchte. Das habe ich soweit hinbekommen. Allerdings endet meine IDML Datei nun auf INDD, weil ich den Dateinamen über app.activeDocument.name abfrage.

Meine Frage ist jetzt, wie ich den Namen so zerlege, dass das Suffix nicht berücksichtigt wird.

Als nächstes würde ich dann natürlich auch gerne wissen, ob ich das auch auf den Pfad anwenden kann. Konkret würde ich nur den Namen des parent Verzeichnisses der INDD Datei ermitteln.

Vielen Dank für eure Hilfe
X

Teile von Datei- und Pfadnamen verwenden

Martin Fischer
  
Beiträge gesamt: 12778

21. Nov 2018, 09:31
Beitrag # 2 von 12
Beitrag ID: #567657
Bewertung:
(4213 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Azrael,

Du kannst im Namen der InDesign-Datei die Endung ".indd" ersetzen durch ".idml".


Etwa so:
Code
 
if (app.documents.length > 0 && app.documents.firstItem().saved == true)
{
var doc_filepath = app.documents.firstItem().fullName;
var idml_filepath = new File(String(doc_filepath).replace(/\.indd$/gi, '') + '.idml');
alert (String(idml_filepath.fullName));
}


Genauer gesagt löscht der replace()-Befehl zunächst die Dateiendung '.indd' (ersetzen durch nix):

Code
str.replace(/\.indd$/gi, '') 


und anschließend wird '.idml' ergänzt.
So, daß am Ende auf jeden Fall die Endung '.idml' dran hängt, auch wenn die InDesign-Datei vorher keine Endung '.indd' hatte.


als Antwort auf: [#567655]
(Dieser Beitrag wurde von Martin Fischer am 21. Nov 2018, 09:33 geändert)

Teile von Datei- und Pfadnamen verwenden

WernerPerplies
Beiträge gesamt: 2760

21. Nov 2018, 09:44
Beitrag # 3 von 12
Beitrag ID: #567658
Bewertung:
(4205 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Azrael,

eine weitere Möglichkeit:

Code
main(); 

/*Void*/function main()
{
try
{
var /*File*/withOutExtension = File(app.activeDocument.fullName.fullName.split(".")[0]);
var /*Folder*/parentFolder = Folder(app.activeDocument.fullName.fullName.split("/").splice(0,(app.activeDocument.fullName.fullName.split("/").length-1)).join("/"));
alert(withOutExtension + "\n" + parentFolder);
}
catch (error)
{
alert(error.message);
}
}



als Antwort auf: [#567655]

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 10:16
Beitrag # 4 von 12
Beitrag ID: #567661
Bewertung:
(4190 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank Martin,

das war sehr hilfreich! Den .replace Befehl hatte ich auch bereits gefunden. Aber ich tue mich noch sehr schwer mit der Syntax. Das hätte ich ohne deine Hilfe nicht herausbekommen.

Kann ich innerhalb des .replace Befehls reguläre Ausdrücke verwenden? Das wäre ja sehr nützlich. Und vielleicht könntest du mir noch einen Tipp geben wofür das /\ bzw. /gi vor und hinter dem Suchbegriff stehen.


als Antwort auf: [#567657]

Teile von Datei- und Pfadnamen verwenden

Martin Fischer
  
Beiträge gesamt: 12778

21. Nov 2018, 10:38
Beitrag # 5 von 12
Beitrag ID: #567662
Bewertung:
(4185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Azrael,

Antwort auf: Und vielleicht könntest du mir noch einen Tipp geben wofür das /\ bzw. /gi vor und hinter dem Suchbegriff stehen.


Der reguläre Ausdruck wird mit / eingeleitet und mit / beendet.
mit dem Backslash \ wird der Punkt escaped (ohne Backslash wäre das in GREP Platzhalter für ein beliebiges Zeichen)


gi sind weitere Optionen für den GREP:
g steht für global (ohne das g wird nur der erste Treffer im String berücksichtigt)
i ignoriert die Groß-/Kleinschreibung.


als Antwort auf: [#567661]

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 10:39
Beitrag # 6 von 12
Beitrag ID: #567663
Bewertung:
(4185 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

auch dir sei gedankt für die schnelle Hilfe. Die Aufschlüsselung der Ordner ist für mich sehr hilfreich.
Die Methode den Dateinamen vom suffix zu trennen funktioniert für mich leider nicht, da der Kunde gerne mal Punkte innerhalb des Dateinamens verwendet (frag nicht ;))


als Antwort auf: [#567658]

Teile von Datei- und Pfadnamen verwenden

WernerPerplies
Beiträge gesamt: 2760

21. Nov 2018, 10:57
Beitrag # 7 von 12
Beitrag ID: #567664
Bewertung:
(4178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das ist kein Problem, ich wollte es nicht zu kompliziert machen:
Code
var withOutExtension = app.activeDocument.fullName.fullName.split(".").slice(0,(app.activeDocument.fullName.fullName.split(".").length-1)).join("."); 



als Antwort auf: [#567663]
(Dieser Beitrag wurde von WernerPerplies am 21. Nov 2018, 11:15 geändert)

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 13:02
Beitrag # 8 von 12
Beitrag ID: #567668
Bewertung:
(4115 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

sowas hatte ich mich schon nach eingehender Studie der Folder-Zeile gedacht.
Ich habe jetzt auch eine JavaScript String Referenz im Netz gefunden und werde mich jetzt eingehender mit den split, splice, search, usw. befassen.

Euch beiden aber ein herzliches Danke. Das macht Mut und hilft dran zu bleiben.


als Antwort auf: [#567664]

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 15:02
Beitrag # 9 von 12
Beitrag ID: #567671
Bewertung:
(4080 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jetzt melde ich mich doch nochmal. Es ist zwar off-topic, aber ich will deswegen kein neues Thema öffnen.

Ich bin mit meinem Script dank eurer Hilfe jetzt fast fertig. Es ging um das Sammeln diverser Daten mehrerer Bücher an einen bestimmten Ort (ähnlich wie das Verpacken in InDesign).
Abschließend möchte ich noch Preflight-Berichte der Bücher zu der Sammlung legen. Auch das habe ich bereits hinbekommen.

Allerdings nervt jetzt immer die Farbprofil-Warnung beim sichern der Berichte. Ich muss zwar nur zweimal Return klicken, aber eigentlich sollte das Script ja ganz ohne mein Zutun laufen.

Ich vermute, dass ich das temporär für InDesign abschalten muss. Aber ich finde einfach den passenden Befehl nicht.

Könnt ihr mir da helfen? Dann war es das auch erstmal von meiner Seite ;)


als Antwort auf: [#567668]

Teile von Datei- und Pfadnamen verwenden

Martin Fischer
  
Beiträge gesamt: 12778

21. Nov 2018, 15:28
Beitrag # 10 von 12
Beitrag ID: #567672
Bewertung:
(4074 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wirf mal einen Blick auf die app.scriptPreferences.

Der userInteractionLevel steuert die Anzeige von Benutzerdialogen.


als Antwort auf: [#567671]

Teile von Datei- und Pfadnamen verwenden

Azrael
Beiträge gesamt: 16

21. Nov 2018, 15:40
Beitrag # 11 von 12
Beitrag ID: #567673
Bewertung:
(4070 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank!
Das klappt ja hier einfach wunderbar.

Ich habe interact_with_alerts eingestellt und bin nun glücklich mit dem Script.

Allerdings würde mich noch interessieren wie die Dialoge behandelt werden wenn sie nicht mehr eingeblendet werden.
Ich stelle mir das jetzt mal so vor, als ob das Script quasi OK bzw. Return drückt. Oder sehe ich das falsch?


als Antwort auf: [#567672]

Teile von Datei- und Pfadnamen verwenden

Martin Fischer
  
Beiträge gesamt: 12778

21. Nov 2018, 17:44
Beitrag # 12 von 12
Beitrag ID: #567681
Bewertung:
(4050 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Wenn Du "in Tasten sprichst", dann würde ich eher behaupten, dass das Drücken der ESC-Taste dem damit verbundenen Verhalten (Ignorieren eines Hinweises) entspricht.

Das OK würde ja bedeuten, dass Du einem Änderungsvorschlag ausdrücklich und blind zustimmst. Es sollte aber eher so sein, dass es weiter geht, als wäre so ein Änderungsvorschlag nie gemacht worden.

Auf Deutsch: "egal" oder "trotzdem".
Auf Schwäbisch: "oinawäg". Smile


als Antwort auf: [#567673]
(Dieser Beitrag wurde von Martin Fischer am 21. Nov 2018, 17:51 geändert)
X