你好,
這可能是一個愚蠢的問題,但我似乎無法解決它。 我有一個視窗調度程序,每 12 小時運行一次 JMP 腳本,並將資料表保存在共用資料夾中。 但是,如果該表(由任何使用者)開啟(通常是這樣),則無法在下一次自動運行中儲存該檔案。 是否有一個簡單的選項可以以「只讀」模式開啟 JMP 檔案並啟用覆蓋資料?
謝謝!
像這樣的東西可能會起作用。 作業系統屬性命令無法理解$桌面,所以第二個例子使用轉換檔案路徑修復它。 如果路徑中有空格,它也會加上引號。
// 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>
FileSnapper 加載項使用此功能使快照檔案變為唯讀。 我認為它也適用於 .JMP 表。
所有這些都假設您的用戶在您的團隊中並且沒有試圖破壞此解決方案。 如果他們對檔案有讀取/寫入存取權限,他們也可以更改屬性。 那你需要一個你有寫權限而他們沒有的伺服器。 如果您的共用資料夾位於您的電腦上,您可能可以比使用 attrib 命令更輕鬆地設定權限。 這些權限不會保護您免受自身侵害 - 如果您在檔案開啟(非唯讀)的情況下執行 JMP 實例,則相同電腦/使用者上的計畫 JMP 實例將不具有獨佔存取權限。 如果很關鍵的話,你可以兩者都做。
據我所知,沒有“簡單”的選項,但有一些選項,以下是一些:
- 將資料夾設定為對其他使用者唯讀,並授予寫入檔案的人員寫入權限
- 使用運行命令啟用寫入“只讀”檔案。 有多種方法可以做到這一點,但一種方法是在覆蓋之前刪除唯讀標誌,然後在儲存後啟用它。 如果我沒記錯的話,還有強制類型標誌,它可以強制覆蓋只讀檔案。