[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Dateien in Ordner kopieren

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

Dateien in Ordner kopieren

mb_new
Beiträge gesamt: 123

27. Jan 2020, 12:55
Beitrag # 1 von 13
Bewertung:
(6014 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Liebe Skripter!

Ich versuche mit einem Skript den Inhalt eines Ordners auszulesen (das klappt), die Dateien möchte ich dann in einen anderen Ordner kopieren (das klappt NICHT) und anschließend die Originale löschen (das klappt wieder)

Was mach ich da falsch? Mir gelingt es einfach nicht, dass der copy befehl angewandt wird. Remove zB funktioniert.

Könnt ihr mir weiterhelfen?

Danke
Martin

Code
var myFolder = Folder.selectDialog(); 
var myFiles = myFolder.getFiles();

var newFolder = Folder.selectDialog();

for (var i = 0; i < myFiles.length; i++){

File (myFiles[i]).copy(newFolder);
File (myFiles[i]).remove();

}

X

Dateien in Ordner kopieren

Uwe Laubender
Beiträge gesamt: 5316

27. Jan 2020, 14:38
Beitrag # 2 von 13
Beitrag ID: #573737
Bewertung:
(5989 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
funktioniert's, wenn Du die Schleife rückwärts laufen lässt?

Code
for( var i = myFiles.length-1 ; i >= 0 ; i-- ) 



als Antwort auf: [#573730]

Dateien in Ordner kopieren

Martin Fischer
  
Beiträge gesamt: 12783

27. Jan 2020, 14:41
Beitrag # 3 von 13
Beitrag ID: #573738
Bewertung:
(5986 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vermutlich muss zusätzlich zu dem. was Uwe geschrieben hat, statt "newFolder" der komplette Pfad als File-Objekt zur neuen Datei angegeben werden.

Also File(newFolder + '/' + [Dateiname])




als Antwort auf: [#573730]
(Dieser Beitrag wurde von Martin Fischer am 27. Jan 2020, 14:45 geändert)

Anhang:
copy.png (50.7 KB)

Dateien in Ordner kopieren

Uwe Laubender
Beiträge gesamt: 5316

27. Jan 2020, 15:10
Beitrag # 4 von 13
Beitrag ID: #573740
Bewertung:
(5976 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
ja, das auch noch.
In Methode File.copy() wird als Argument entweder ein String oder ein File-Objekt erwartet.

Das sollte funktionieren:

Code
var myFolder = Folder.selectDialog();  
var myFiles = myFolder.getFiles();

var newFolder = Folder.selectDialog();

for ( var i = myFiles.length-1; i >=0; i-- )
{

var originalFile = myFiles[i];
var copyFile = File( newFolder +"/"+ originalFile.name );
if( copyFile.exists )
{
alert( copyFile +"\r"+"wird NICHT überschrieben. ");
continue
}

originalFile.copy( copyFile );

// TEST, OB DIE KOPIE AUSGEFÜHRT WURDE:
if( copyFile.exists )
{
originalFile.remove();
};

};



als Antwort auf: [#573738]

Dateien in Ordner kopieren

WernerPerplies
Beiträge gesamt: 2762

27. Jan 2020, 15:36
Beitrag # 5 von 13
Beitrag ID: #573742
Bewertung:
(5963 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

vielleicht hilft Dir dies Skript:

Kopieren von ganzen Ordnern


als Antwort auf: [#573730]

Dateien in Ordner kopieren

mb_new
Beiträge gesamt: 123

28. Jan 2020, 13:15
Beitrag # 6 von 13
Beitrag ID: #573750
Bewertung:
(5892 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Zusammen!

Danke für eure Hilfen. Habe das Skript von Uwe nun angepasst und es funktioniert einwandfrei.

Eine kleine Verständnisfrage noch:

Wenn ich einen Datei löschen möchte, muss da immer das"File" vorab oder danach dabei stehen?
Ich meine so:
Code
var delFile = File(myFolderName + "/" + myDocName); 
delFile.remove();



oder so:
Code
var delFile = myFolderName + "/" + myDocName; 
File(delFile).remove();


Ist das egal, auf welchem Weg man das skriptet?

Danke nochmals, schöne Grüße
Martin


als Antwort auf: [#573742]

Dateien in Ordner kopieren

WernerPerplies
Beiträge gesamt: 2762

28. Jan 2020, 13:32
Beitrag # 7 von 13
Beitrag ID: #573752
Bewertung:
(5881 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Martin,

Zitat Ist das egal, auf welchem Weg man das skriptet?


Nein! :-)

Code
delFile.remove(); 

benutzt die Methode eines existierenden Fileobjektes.
Zitat File(delFile).remove();

erzeugt ein temporäres Fileobjekt, dass nach Ausführung der Methode direkt wieder verworfen wird.

In der ersten Version steht Dir das Fileobjekt auch nach Ausführung des Removes mit seinen Eigenschften zur Verfügung.


als Antwort auf: [#573750]

Dateien in Ordner kopieren

Uwe Laubender
Beiträge gesamt: 5316

28. Jan 2020, 13:36
Beitrag # 8 von 13
Beitrag ID: #573753
Bewertung:
(5879 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
vorneweg:

getFiles() gibt Dateien und Unterverzeichnisse gleichermaßen zurück.

Du solltest deshalb in der Methode getFiles() eine Filterfunktion laufen lassen, die Verzeichnisse innerhalb des Source-Verzeichnisses rausnimmt. Auch Dateien, die mit einem Punkt beginnen, wenn Du auf Mac OS X unterwegs bist. Und auch Dateien, die in der Eigenschaft hidden den Wert true haben.



In etwa so:

Code
var testForInvisibleOnMac = RegExp( "^\\." ); 

myFileList = theFolder.getFiles
(
function(file)
{
if
(
file instanceof File
&&
!file.name.match( testForInvisibleOnMac )
&&
!file.hidden
)

return true
}
);


Nun zu Deiner anderen Frage:
Wenn Du erwartest, dass in der Variablen delFile wirklich ein Datei-Objekt gespeichert wird, dann benutze den Konstruktor File().

Oder Du benennst die Variable um in beispielsweise DateiPfadString oder so und beim Aufruf von remove() musst Du mit File(DateiPfadString).remove() arbeiten, damit aus dem DateiPfadString eine Datei-Objekt wird, das mit remove() etwas anfangen kann.


als Antwort auf: [#573750]
(Dieser Beitrag wurde von Uwe Laubender am 28. Jan 2020, 13:38 geändert)

Dateien in Ordner kopieren

mb_new
Beiträge gesamt: 123

29. Jan 2020, 10:53
Beitrag # 9 von 13
Beitrag ID: #573787
Bewertung:
(5814 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke an alle für die Erklärungen und Hilfestellungen.

Eine kurze Frage hab ich noch zum "copy"-Befehl.

Ich habe jetzt bemerkt, dass zB bei Schriften, das Icon geändert wird und auch das bevorzugte Programm, mit dem die Datei geöffnet werden soll. In meinem Fall auf einmal statt der Schriftsammlung nun Illustrator.
Bei psd, ai, png, jpg Dateien ist das bisher gleich geblieben.

Gibt es dafür eine Erklärung bzw. eine Möglichkeit das unverändert zu lassen?

Mein Laiengedanke sagt mit als eine Lösung, die Datei nicht zu kopieren sondern in einen anderen Ordner zu "verschieben".

Vielleicht hat hier noch wer einen Input, unbedingt notwendig ist es mir nicht, nur der "Form" halber.

Schöne Grüße
Martin


als Antwort auf: [#573753]

Dateien in Ordner kopieren

Thomas Richard
Beiträge gesamt: 19334

29. Jan 2020, 11:22
Beitrag # 10 von 13
Beitrag ID: #573788
Bewertung:
(5808 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Da fehlt wahrscheinlich beim copy der Touch, der dem System (im Falle eines aktuellen OS X der Spotlight Datenbank), bescheid stößt, dass die Ressourcen mit zu bewegen sind. Klassisches Problem, das einem ein Heliosserver erspart ;-)


als Antwort auf: [#573787]

Dateien in Ordner kopieren

WernerPerplies
Beiträge gesamt: 2762

30. Jan 2020, 09:25
Beitrag # 11 von 13
Beitrag ID: #573818
Bewertung:
(5755 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Uwe,

Zitat originalFile.copy( copyFile );

// TEST, OB DIE KOPIE AUSGEFÜHRT WURDE:
if( copyFile.exists )
{
originalFile.remove();
};


An dieser Stelle würde mich interessieren, warum die Kopie nicht ausgeführt wurde, deshalb vielleicht besser so abfragen:

Code
            if (!(originalFile.copy(copyFile))){ 
alert(/*String*/originalFile.error) ;
}
else{
if (!(originalFile.remove())
alert(/*String*/originalFile.error)
}



als Antwort auf: [#573740]

Dateien in Ordner kopieren

Uwe Laubender
Beiträge gesamt: 5316

30. Jan 2020, 11:51
Beitrag # 12 von 13
Beitrag ID: #573825
Bewertung:
(5739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Martin …Eine kurze Frage hab ich noch zum "copy"-Befehl.

Ich habe jetzt bemerkt, dass zB bei Schriften, das Icon geändert wird und auch das bevorzugte Programm, mit dem die Datei geöffnet werden soll. In meinem Fall auf einmal statt der Schriftsammlung nun Illustrator.
Bei psd, ai, png, jpg Dateien ist das bisher gleich geblieben.

Gibt es dafür eine Erklärung bzw. eine Möglichkeit das unverändert zu lassen?


Hallo Martin,
auf welchem Betriebssystem bist Du unterwegs?

Du hast "Schriftsammlung" erwähnt, also Mac OS X.
Aber welches genau?

Habe gerade keinen Mac zur Hand, um das ausgiebiger zu testen.
Was sind das für Schriften? OpenType-Fonts?


als Antwort auf: [#573787]

Dateien in Ordner kopieren

mb_new
Beiträge gesamt: 123

30. Jan 2020, 15:14
Beitrag # 13 von 13
Beitrag ID: #573832
Bewertung:
(5713 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe!

Ich habe hier OSX 10.14, InDesign CC 2018.
Die Schriften bekommen ein "Text"-Symbol in der Dateiinformation und als vorgeschlagenes Programm Adobe Illustrator.

Ich habe es mit zig anderen dateien probiert (docx, xlsx, ai, png, jpg, psd, pdf), die bleiben alle unverändert. Bei den Schriften hatte ich bis jetzt otf und ttf probiert, die werden beide verändert.

Zuhause hab ich noch einen Rechner mit 10.11 und InDesign CC 2018. Dort tritt das gleiche auf, nur dass die Schriften ein anderes Symbol bekommen und das vorgeschlagene Programm auch ein anderes ist (weiß jetzt von hier gerade nicht welches).

Schöne Grüße
Martin


als Antwort auf: [#573825]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!