Hi,
Das ist vielleicht eine dumme Frage, aber ich kann sie scheinbar nicht lösen. Ich habe einen Fensterplaner, der alle 12 Stunden ein JMP-Skript ausführt und die Datentabelle in einem freigegebenen Ordner speichert. Allerdings kann die Datei beim nächsten Autolauf nicht gespeichert werden, wenn die Tabelle (von einem beliebigen Benutzer) geöffnet ist, was normalerweise der Fall ist. Gibt es eine einfache Option, die JMP-Datei im schreibgeschützten Modus zu öffnen und das Überschreiben der Daten zu ermöglichen?
Danke!
So etwas könnte funktionieren. Das DOS Attribut Befehl wird nicht verstehen $desktop , also das zweite Beispiel verwendet ConvertFilePath um es zu reparieren. Außerdem werden Anführungszeichen hinzugefügt, falls Ihre Pfade Leerzeichen enthalten.
// make read only: attrib.exe +R <PATH>
txt = Run Program(executable("attrib.exe"), options({"+R","\!""||FILENAME||"\!""}), readfunction("text"));</PATH>
// make NOT read only: attrib.exe -R <PATH>
txt = Run Program(executable("attrib.exe"),options({"-R","\!""||convertfilepath( FILENAME ,windows)||"\!""}),readfunction("text"));</PATH>
Das FileSnapper-Add-In nutzt dies, um die Snapshot-Dateien schreibgeschützt zu machen. Ich denke, es wird auch für .JMP-Tabellen funktionieren.
All dies setzt voraus, dass Ihre Benutzer zu Ihrem Team gehören und nicht versuchen, diese Lösung zu zerstören. Wenn sie Schreib-/Lesezugriff auf die Datei haben, können sie auch das Attribut ändern. Dann benötigen Sie einen Server, auf dem Sie Schreibrechte haben, diese jedoch nicht. Wenn sich Ihr freigegebener Ordner auf Ihrem Computer befindet, können Sie die Berechtigungen wahrscheinlich einfacher festlegen als mit dem Befehl attrib. Die Berechtigungen schützen Sie nicht vor sich selbst – wenn Sie eine Instanz von JMP mit geöffneter Datei (nicht schreibgeschützt) laufen lassen, hat die geplante Instanz von JMP auf demselben Computer/Benutzer keinen exklusiven Zugriff. Sie können beides tun, wenn es kritisch ist.
Meines Wissens gibt es keine „einfache“ Option, aber es gibt Optionen, im Folgenden sind einige aufgeführt:
- Machen Sie den Ordner für andere Benutzer schreibgeschützt und gewähren Sie der Person, die die Datei schreibt, Schreibzugriff
- Verwenden Sie „Run Command“, um das Schreiben von „schreibgeschützten“ Dateien zu aktivieren. Es gibt mehrere Möglichkeiten, dies zu tun. Eine Möglichkeit besteht jedoch darin, das schreibgeschützte Flag unmittelbar vor dem Überschreiben zu entfernen und es dann nach dem Speichern zu aktivieren. Wenn ich mich richtig erinnere, gibt es auch Force-Type-Flags, die das Überschreiben schreibgeschützter Dateien erzwingen können.