HAAGE&PARTNER Computer GmbH  HAAGE&PARTNER

Pause im Script einlegen

Forum zur Erstellung von Schaltern über den Befehlseditor (Schalterbeispiele)

Pause im Script einlegen

Beitragvon kolob » Fr 18. Jun 2010, 10:49

Habe folgendes Problem:
Ich möchte von allen Dateien im Verzeichnis eine Kopie mit anderem Namen erstellen und diese Kopie dann "verkleinern"
Allerdings funktioniert das nur, wenn ich einen Ordner anlegen lasse, damit das ganze "ausgebremst" wird.

Was kann ich tun, damit es funktioniert, ohne diesen "Zwischenordner" anlegen zu müssen.

Das Script müsste nach Copy HERE AS = "t*" eine Pause machen, bis alles erledigt ist.



Select ALLFILES
Rename TYPE=files CASE=extlower NUMBER="11" BY=1 PATTERN="*.*" TO="[#].jpg"
@nodeselect
Image CONVERT=jpg WIDTH=600 PRESERVEASPECTRATIO QUALITY=40 REPLACE
@nodeselect
Copy HERE AS = "t*"
CreateFolder NAME Test
Delete Test
Select PATTERN t*
Image CONVERT=jpg WIDTH=60 PRESERVEASPECTRATIO QUALITY=25 REPLACE
kolob
 
Beiträge: 5
Registriert: Fr 18. Jun 2010, 10:45
Betriebssystem: Windows 7
Produkt: DOpus 9.5.4.0

Re: Pause im Script einlegen

Beitragvon kolob » Fr 18. Jun 2010, 20:30

Vielleicht nochmal zum besseren Verständnis:

Das Script läuft wie gewollt bis einschließlich Copy HERE AS = "t*"

Danach passiert leider nichts mehr. Ausser, wenn ich das Script an dieser Stelle mit
einer gezwungenen Operation (Ordner anlegen) unterbreche.

Nachdem der Ordner dann durch Nachfrage gelöscht wurde (die durch das Script angebotene manuelle Löschung darf aber erst stattfinden, wenn alle Dateien mit Copy HERE AS = "t*" kopiert wurden, das muss ich eben immer abwarten), läuft der Rest des Scriptes auch noch durch.

Nun bin ich auf der Suche nach einem Befehl oder einer Möglichkeit, wie diese von mir erzwungene Pause, die manuell durch das Löschen des Ordners beendet wird, automatisch gesetzt wird.

Weiss jemand Rat?
kolob
 
Beiträge: 5
Registriert: Fr 18. Jun 2010, 10:45
Betriebssystem: Windows 7
Produkt: DOpus 9.5.4.0

Re: Pause im Script einlegen

Beitragvon Kundal » Sa 19. Jun 2010, 11:15

@kolob:

Probiere mal den Funktionstyp deines Buttons auf "MS-DOS Batch-Funktion" Zu setzen.
Der folgende Code funktioniert bei mir damit einwandfrei (ohne Ordner erstellen) :
Code: Alles auswählen
@nodeselect
Select ALLFILES
Rename TYPE=files CASE=extlower NUMBER="11" BY=1 PATTERN="*.*" TO="[#].jpg"
Image CONVERT=jpg WIDTH=600 PRESERVEASPECTRATIO QUALITY=40 REPLACE
Copy HERE AS = "t*"
Select PATTERN t*
Image CONVERT=jpg WIDTH=60 PRESERVEASPECTRATIO QUALITY=25 REPLACE
Kundal
Moderator
 
Beiträge: 1021
Registriert: Di 20. Apr 2010, 21:26
Betriebssystem: Win 7 Pro 64 bit
Produkt: DOpus 11 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Pause im Script einlegen

Beitragvon kolob » Do 24. Jun 2010, 13:28

Das ist klasse und funktioniert jetzt tadellos.
So habe ich mir das vorgestellt, vielen Dank!
kolob
 
Beiträge: 5
Registriert: Fr 18. Jun 2010, 10:45
Betriebssystem: Windows 7
Produkt: DOpus 9.5.4.0

Re: Pause im Script einlegen

Beitragvon kolob » Do 24. Jun 2010, 14:02

Funktioniert leider doch noch nicht wie gewünscht.

Wenn ich das Script zum ersten Mal in dem Ordner mit den Bilden ausführe, funktioniert es tadellos.
Nachdem ich die erzeugten Bilder aber dann in den endgültigen Zielordner (per ftp) übertrage und den "Arbeitsordner" erneut mit Bildern fülle, die auf dieselbe Weise angepasst und umbenannt und kopiert und verkleinert werden sollen, klappt das Script leider nicht mehr!

Es braucht eine "manuelle" Pause (die ich vorher mit "Ordner anlegen" erzwungen habe) und jetzt mit @confirm erzeuge. Beim Anzeigen der "Bestätigungsmeldung" sehe ich im Hintergrund bei vielen Bildern im Ordner immer noch, wie die Dateien kopiert und umbenannt werden. Erst wenn dieser Vorgang abgeschlossen ist, kann (sollte) ich auf OK klicken und das Script fährt wie gewollt fort. Wenn ich zu früh klicke, habe ich Pech gehabt.

Select ALLFILES
Rename TYPE=files CASE=extlower NUMBER="11" BY=1 PATTERN="*.*" TO="[#].jpg"
Image CONVERT=jpg WIDTH=600 PRESERVEASPECTRATIO QUALITY=40 REPLACE
Copy HERE AS = "t*"
@confirm
Select PATTERN t*
Image CONVERT=jpg WIDTH=60 PRESERVEASPECTRATIO QUALITY=25 REPLACE

Wer hat noch einen Tipp?
kolob
 
Beiträge: 5
Registriert: Fr 18. Jun 2010, 10:45
Betriebssystem: Windows 7
Produkt: DOpus 9.5.4.0

Re: Pause im Script einlegen

Beitragvon kolob » Do 8. Jul 2010, 13:11

Hat niemand eine Idee?

Ich habe 50 jpg-Dateien, die ich bearbeiten muss (Größe ändern und Thumnails erstellen).
Nachdem dies geschehen ist, verschiebe ich diese auf meinen Webspace und lege weitere 50 Dateien in den "Arbeitsordner".

Das Script muss bis einschließlich Zeile 4 abgearbeitet werden, bevor es mit Zeile 6 weiter macht.

Seltsamerweise beginnte es aber schon vorher mit Zeile 6, deshalb muss ich eine manuelle Pause definieren.
Dies geschieht in Zeile 5.
Diese Meldung kann ich aber frühestens wegklicken, wenn ich im Hintergrund sehe, dass alle Dateien kopiert sind.
Erst dann klicke ich auf OK und das Script wird weiter abgearbeitet.

Wenn ich zu früh klicke, geht alles schief!

Wie kann ich also diese Pause automatisch setzen, damit sie auch lange genug wartet?

1 Select ALLFILES
2 Rename TYPE=files CASE=extlower NUMBER="11" BY=1 PATTERN="*.*" TO="[#].jpg"
3 Image CONVERT=jpg WIDTH=600 PRESERVEASPECTRATIO QUALITY=40 REPLACE
4 Copy HERE AS = "t*"
5 @confirm
6 Select PATTERN t*
7 Image CONVERT=jpg WIDTH=60 PRESERVEASPECTRATIO QUALITY=25 REPLACE

Wer weiß Rat?
kolob
 
Beiträge: 5
Registriert: Fr 18. Jun 2010, 10:45
Betriebssystem: Windows 7
Produkt: DOpus 9.5.4.0

Re: Pause im Script einlegen

Beitragvon SigmaTau » So 2. Okt 2011, 17:32

vielleicht kannst du folgendes für dich nutzen

du könntest eine endlos schleife bauen bis eine bestimmte Datei vorhanden ist

TEST: existiert eine Datei?
if exist %datei.txt
Beispiel:
Code: Alles auswählen
@echo off
:START
 if exist %datei.txt goto existiert
 echo Datei nicht gefunden!
 goto START

 :existiert
 echo die Datei existiert!

 :ENDE
 pause
 

Ausgabe: wenn die Datei datei.txt existiert: die Datei existiert! wenn die Datei datei.txt nicht existiert: Datei nicht gefunden!
Benutzeravatar
SigmaTau
 
Beiträge: 61
Registriert: Sa 3. Mai 2008, 23:13
Wohnort: Cassel
Betriebssystem: Win 7 Ultimate 64bit
Produkt: DOpus 9.last | 10.last/BETA

Re: Pause im Script einlegen

Beitragvon Kundal » So 2. Okt 2011, 23:48

du könntest eine endlos schleife bauen bis eine bestimmte Datei vorhanden ist

Ich verstehe nicht wie du dir das vorstellst. Welche Datei soll denn bei z.B. 200 markierten Dateien das Kriterium sein?

Für das Timingproblem hier scheint mir die Lösung eher in der Umstellung der Reihenfolge der Befehle zu liegen. Wenn beide Konvertierungsaktionen ans Ende verlegt werden bleibt während der ersten Konvertierung locker genug Zeit die Kopieraktion abzuschließen bevor auch die neuen Dateien konvertiert werden.
Die Reihenfolge der Befehle muss sein:
Alles markieren=>Umbenennen=>Kopieren als=>Dateien ohne "t" am Anfang wählen=>konvertieren=>Dateien mit "t" am Anfang wählen=>konvertieren.

Der resultierende Schaltercode arbeitet bei mir über 200 JPG's sauber ab:
Code: Alles auswählen
@nodeselect
Select ALLFILES
Rename TYPE=files CASE=extlower NUMBER="11" BY=1 PATTERN="*.*" TO="[#].jpg"
Copy HERE AS = "t*"
Select PATTERN [0-9]* DESELECTNOMATCH
Image CONVERT=jpg WIDTH=600 PRESERVEASPECTRATIO QUALITY=40 REPLACE
Select PATTERN t* DESELECTNOMATCH
Image CONVERT=jpg WIDTH=60 PRESERVEASPECTRATIO QUALITY=25 REPLACE
Kundal
Moderator
 
Beiträge: 1021
Registriert: Di 20. Apr 2010, 21:26
Betriebssystem: Win 7 Pro 64 bit
Produkt: DOpus 11 x64 - Letzte Betaversion
Version DOpus: Pro


Zurück zu Directory Opus Code-Beispiele

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron