繁体   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