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