簡體   English   中英

用 xcopy 批量覆蓋只讀文件

[英]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.comMicrosoft Docs

如果這是一個只讀文件,不會啟用寫入標志,因此您無法編輯它。 我的想法/解決方法是使文件可編輯,然后修改然后轉換回只讀。

attrib -r file.txt

your code goes here

attrib +r file.txt

看看這是否適合您,如果您有任何問題,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM