Hallo,
Das ist vielleicht eine dumme Frage, aber ich kann sie nicht lösen. Ich habe einen Fensterplaner, der alle 12 Stunden ein JMP-Skript ausführt und die Datentabelle in einem freigegebenen Ordner speichert. Die Datei kann jedoch beim nächsten Autorun nicht gespeichert werden, wenn die Tabelle (von jedem Benutzer) geöffnet ist, was normalerweise der Fall ist. Gibt es eine einfache Option, um die JMP-Datei im "schreibgeschützten" Modus zu öffnen und das Überschreiben der Daten zu aktivieren?
Danke!
Meines Wissens gibt es keine "einfache" Option, aber es gibt Optionen, unten sind einige:
- Machen Sie den Ordner für andere Benutzer schreibgeschützt und geben 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, aber eine wäre, das Nur-Lesen-Flag kurz 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 von schreibgeschützten Dateien erzwingen können.
So etwas könnte funktionieren. Das DOS zugeschrieben Befehl wird nicht verstehen $desktop , also verwendet das zweite Beispiel convertFilePath um es zu reparieren. Es fügt auch Anführungszeichen hinzu, falls Sie Leerzeichen in Ihren Pfaden haben.
// 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 verwendet 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 in Ihrem Team sind und nicht versuchen, diese Lösung zu brechen. Wenn sie Lese-/Schreibzugriff auf die Datei haben, können sie auch das Attribut ändern. Dann bräuchten Sie einen Server, auf dem Sie Schreibrechte haben und sie 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.