[英]Overwrite a read-only file in batch with xcopy
我們有一個內部 excel 插件,我們定期在多個 UNC 目錄中部署。 每個副本都設置為只讀,以便用戶無法意外更改它。 “部署”過程涉及到每個目錄,並通過單擊和拖動將文件復制到該位置。 由於文件是只讀的沒有沖突,用戶關閉excel窗口並重新啟動,他們有更新。
我已着手將其替換為一個批處理文件,該文件會隨着目錄數量的不斷增加而自動執行此操作,並且偶爾會出現錯誤,例如忘記將文件設置為只讀。
我像這樣使用 xcopy:
xcopy "%workingdir%%filename%" "%uncpath%%targetdirectory%" /y /k
我在寫入文件時訪問被拒絕。 有沒有辦法通過使用 Batch 的單擊和拖動來實現此功能? 我確信一定有辦法做到這一點,但到目前為止我們所看到的所有解決方案都涉及暫時刪除“只讀”然后復制文件的代碼。 我不認為這是一個可行的解決方案,因為如果有人在那一瞬間加載它,它可能會鎖定對文件的訪問。
編輯:發布后發現它是 xcopy 標志 /r 不知道我是怎么錯過它的,我想只是那些日子之一。 謝謝。
添加 OP 的編輯作為實際答案:
xcopy source [destination] /y /r
/y Suppress prompt to confirm overwriting a file.
/r Overwrite read-only files.
來源: ss64.com , Microsoft Docs
如果這是一個只讀文件,不會啟用寫入標志,因此您無法編輯它。 我的想法/解決方法是使文件可編輯,然后修改然后轉換回只讀。
attrib -r file.txt
your code goes here
attrib +r file.txt
看看這是否適合您,如果您有任何問題,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.