Schalter: Zeitstempel übertragen - geht das?

Aktuelle Version: 12.7 (23.11.2017)
Alles zum Thema Directory Opus
Antworten
Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Schalter: Zeitstempel übertragen - geht das?

Beitrag von Mecum » 29. Aug 2015 10:39

Hallo,

ich suche nach einer Möglichkeit, alle Zeitattribute (Erstellt, Geändert, Letzter Zugriff) von einer Datei (im aktiven Lister) auf eine andere (im Ziellister) zu übertragen. Vllt kann man sogar sämtliche Attribute einer Datei übertragen, aber wirklich wichtig wären die Zeitstempel.

Da ich nach langem Suchen kein Tool gefunden habe, das diese Aufgabe erfüllen könnte, möchte ich hier mal freundlich anfragen, ob vllt jemand einen Tip hätte.

Vielen Dank

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Kundal » 29. Aug 2015 11:24

Dafür hat Leo mal ein Script geschrieben: Command: ClipAttr (copy/paste timestamps between files)

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Mecum » 29. Aug 2015 13:54

Vielen vielen Dank!!!
Das ist genau das, was ich schon so lange gesucht habe^^.

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Mecum » 31. Aug 2015 03:05

Sodala, das Script arbeitet wunderbar (bis auf dass es leider das Attribut "Letzter Zugriff" nicht überträgt).

Jetzt würde ich den gesamten Ablauf gerne noch weiter vereinfachen:

1) Timestamps in die Ablage kopieren
2) Datei mit Notepad++ öffnen
3) Nach dem Schliessen von Notepad++ Timestamps aus der Ablage zurückübertragen

Das ganze funktioniert auch wunderbar, solange der Focus der Datei nicht verloren geht. Wenn ich allerdings im DOpus rumnavigiere und die Datei nicht mehr den Focus hat, geht's nimmer. Daher bräuchte ich Variablen in denen ich {filepath} und {sourcepath} zwischenspeichern und später damit den Focus wieder setzen kann.

Mein Ansatz:

Code: Alles auswählen

@set FileToReattr {filepath$}
@set SourceToFileToReattr {sourcepath}
ClipAttr COPY
"C:\Programme (portable)\+ ..... System & Utilities\+ ..... Dateien & Ordner\Notepad++\notepad++.exe" {$FileToReattr}
Go {$SourceToFileToReattr}
Select {$FileToReattr}
ClipAttr PASTE
@nodeselect 
Leider funktioniert das mit den Variablen noch nicht so ganz^^. DOpus springt zwar zum Dateiordner zurück, nur setzt er nicht den Focus auf den Lister, wenn dieser in der Dualansicht auf dem andern Lister liegt, noch setzt er den Focus auf die Datei selbst, auch wenn der entsprechende Lister fokusiert ist.

Wäre es möglich, dass mir da jemand die Funktionsweise von Variablen kurz erklärt, das Script ändert oder mir nen Link zu ner Hilfe geben könnte?
Vielen Dank und liebe Grüße

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Kundal » 31. Aug 2015 09:06

Ich habe mal etwas mit deinem Code gespielt. Die Variablen brauchst du nicht. DOpus behält Variablen wie {sourcepath} im Speicher solange der Befehl aktiv ist. Leider funktioniert der Select-Befehl trotzdem nicht mit {file}, auch wenn ich das in Form einer Variable übergebe. Mit {filepath} geht es übrigens ohnehin nicht, da Select keine kompletten Pfade akzeptiert. Ich musste deshalb den Dateinamen in die Zwischenablage kopieren damit die Auswahl funktioniert. Damit das auch dann noch funktioniert, wenn du während der Bearbeitung in notepad++ etwas anderes in die Zwischenablage kopierst, musste der Inhalt in eine Variable gesetzt werden. Die Aktivierung des neu geöffneten Ordners benötigte ebenfalls ein Workaround. Das folgende läuft bei mir wie gewünscht:

Code: Alles auswählen

@nodeselect
Clipboard COPYNAMES=nopaths
@set fname={clip}
ClipAttr COPY
"C:\Programme (portable)\+ ..... System & Utilities\+ ..... Dateien & Ordner\Notepad++\notepad++.exe" {filepath}
Go {sourcepath} OPENINRIGHT
Set SOURCE=right
Select {$fname} EXACT DESELECTNOMATCH SETFOCUS 
ClipAttr PASTE
 

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Mecum » 31. Aug 2015 10:44

Klasse, vielen Dank. Die einzige Änderung, die noch vorzunehmen war, ist die Variable {$fname} beim Select-Befehl in Quotas zu setzen, da das ganze sonst nur bei Dateinamen ohne Leerzeichen funktioniert:

Code: Alles auswählen

Select DESELECT PATTERN="~(*.log|*.txt)"
@nodeselect
Clipboard COPYNAMES=nopaths
@set fname={clip}
ClipAttr COPY
"C:\Programme (portable)\+ ..... System & Utilities\+ ..... Dateien & Ordner\Notepad++\notepad++.exe" {filepath}
Go {sourcepath} OPENINLEFT
Set SOURCE=left
Select "{$fname}" EXACT DESELECTNOMATCH SETFOCUS
ClipAttr PASTE
Dass das ganze nur über die Zwischenablage funktioniert ist zwar ein Schönheitsfehler (muss man halt wissen, dass dann alles weg ist, was vorher drin war), ist aber zu verkraften.

Gibt es eine Möglichkeit Select DESELECT PATTERN="~(*.log|*.txt)" insofern zu erweitern, dass im Fall des Falles nur die erste von mehreren gewählten Dateien in den Prozess überführt wird? Sollten nämlich aus Versehen mehrere Dateien markiert sein, dann würde im jetzigen Script nur die erste wieder zurückgesetzt bzw man müsste den Stapelablauf mittel DOpus-Beendigung unterbrechen. Anders gesagt: das ganze sollte nur dann starten, wenn lediglich eine Datei markiert ist und diese den Kriterien entspricht.

Benutzeravatar
Kundal
Moderator
Beiträge: 1341
Registriert: 20. Apr 2010 21:26
Betriebssystem: Win7 & Win 10 Pro 64 bit
Produkt: DOpus 12 x64 - Letzte Betaversion
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Kundal » 31. Aug 2015 11:55

Ich habe eine bessere Lösung gefunden. Allerdings musst du dafür das geniale Script SelectEx von tbone installieren. Das Script fügt den neuen Befehl SelectEx hinzu. Damit funktioniert dein Button ordnungsgemäß bei mehreren ausgewählten Dateien und die Zwischenablage muss auch nicht mehr bemüht werden. Die geöffnete Dateianzeige hat zwar nicht den Fokus, aber das Rücksetzen der Daten funktioniert trotzdem einwandfrei.

Code: Alles auswählen

@disablenosel 
Select DESELECT PATTERN="~(*.log|*.txt)"
SelectEx TOVAR="Slot01" NODESELECT
ClipAttr COPY
"C:\Programme (portable)\+ ..... System & Utilities\+ ..... Dateien & Ordner\Notepad++\notepad++.exe" {filepath}
SelectEx FROMVAR Slot01 Go
ClipAttr PASTE

Mecum
Beiträge: 101
Registriert: 13. Dez 2008 13:34
Betriebssystem: Windows 7 Pro
Produkt: DOpus 11
Version DOpus: Pro

Re: Schalter: Zeitstempel übertragen - geht das?

Beitrag von Mecum » 31. Aug 2015 13:55

Also das ist ja wirklich genial :D - va dass mehrere Dateien direkt hintereinander einwandfrei abzuarbeiten geht.

VIELEN DANK !!!

Antworten

Wer ist online?

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