Edit Mit Backup

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

Johnny R
Posts: 348
Joined: 03 Oct 2013, 02:07

Edit Mit Backup

04 Apr 2014, 05:39

Ein kleines Skript, das Dokumente mit LCtrl+Enter zum Editieren öffnet, aber vorher immer erst eine Sicherungskopie mit der Endung "sik" anlegt:

Code: Select all

LControl & Enter::
   Datei := Selection()
   ; Ermittelt die Einzelheiten der aktiven Datei:
   SplitPath, Datei, DateiName, DateiDir, DateiExtension, DateiNameNoExt, DateiDrive
   if DateiExtension in lnk ; Verknüpfung
      FileGetShortcut, %Datei%, Datei
   ; Ermittelt noch einmal die Einzelheiten der gemeinten Datei:
   SplitPath, Datei, DateiName, DateiDir, DateiExtension, DateiNameNoExt, DateiDrive
   ; Ungeeignete, bzw. beschränkt geeignete Dateiformate und Verzeichnisse:
   if DateiExtension in url ; Ungeeignete Internetverknüpfung
      Fehler = url
   if DateiExtension in exe,bat,com ; Ungeeignete ausführbare Dateien
      Fehler = exe-Datei
   VerbotenDir := USERPROFILE . "\Desktop" ; Auf dem Desktop findet kein Backup statt.
   if DateiDir in %VerbotenDir% ; Desktop etc.
      Fehler = falsches Verzeichnis
   FileGetAttrib, AttribVar, %Datei%
   if AttribVar contains R, D ; Wenn Ordner oder ReadOnly
      Fehler = Ordner oder schreibgeschützt
   If StrLen(Fehler)>0
   ; Wenn Fehler:
   {
      MsgBox, 16, Öffnen mit Backup, Die Datei kann auf diesem Weg nicht geöffnet werden! `nFehler: %Fehler%, 3
      Return
   }

   ; Erstellt die Sicherungskopie:
   SplitPath, Datei, DateiName, DateiDir, DateiExtension, DateiNameNoExt, DateiDrive
   DateiNeu := DateiDir . "\" . DateiName . ".sik"
   ; Kopiert die Sicherungsdatei:
   FileCopy, %Datei%, %DateiNeu%, 1    ; löscht eine ggf. schon vorhandene Sicherungsdatei und kopiert.
   ; Öffnet die Datei per "Edit" oder hilfsweise "Open"
   Run, edit %Datei%,,UseErrorLevel ; öffnet mit dem Verb "Edit"
   if (ErrorLevel="ERROR")
      Run, open %Datei%,,UseErrorLevel ; öffnet mit dem Verb "Open" bzw. "Ausführen"
   ; Wenn Fehler beim Öffnen:
   if (ErrorLevel="ERROR")
   {
      FileDelete, %DateiNeu% ; die eben erstellte Sicherungsdatei wird wieder gelöscht.
      MsgBox, 16, Öffnen mit Backup, Die Datei kann auf diesem Weg nicht geöffnet werden! `nFehler: Keine bekannte Anwendung, 3
   }
Return

; Ermittelt den aktuell markierten Text, die aktuell markierte Datei etc.:
Selection(OhneSichern = false, Warten = 5)
{
   If NOT OhneSichern
      AlterClipboardInhalt := ClipboardAll ; Sichern des Inhaltes von Clipboard
   Clipboard =
   Send ^c           ; Kopiert die Markierung.
   IF (Warten>0)
      ClipWait, %Warten%       ; Warte auf neuen Inhalt im Clipboard. 5 wg. Netzlaufwerken, die ggf. langsamer sind.
   RückG := ClipBoard       ; Speichern des Namens zur weiteren Verarbeitung
   If NOT OhneSichern
      ClipBoard := AlterClipboardInhalt  ; Alten Inhalt des Clipboards wiederherstellen
   Return RückG
}

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 6 guests