ste*_*ten 5 windows cmd xcopy batch-file
我们有一个内部 Excel 插件,定期在多个 UNC 目录中部署。每个副本都设置为只读,以便用户无法意外更改。“部署”过程涉及进入每个目录,然后通过单击并拖动将文件复制到该位置。由于该文件是只读的,因此没有冲突,用户关闭 Excel 窗口并重新启动,他们就有了更新。
我已经着手用一个批处理文件来替换它,随着目录数量的不断增长,该批处理文件会自动执行此操作,并且偶尔会出现错误,例如忘记将文件设置为只读。
我像这样使用 xcopy:
xcopy "%workingdir%%filename%" "%uncpath%%targetdirectory%" /y /k
Run Code Online (Sandbox Code Playgroud)
我在写入文件时被拒绝访问。有没有一种方法可以实现我们通过使用批处理单击和拖动获得的功能?我确信一定有办法做到这一点,但到目前为止我们看到的所有解决方案都涉及暂时删除“只读”然后复制文件的代码。我不认为这是一个可行的解决方案,因为如果有人在那一刻加载文件,它可能会锁定对文件的访问。
编辑:发布此后不久发现它是 xcopy 标志 /r 不知道我是如何错过它的,我想只是那些日子之一。谢谢。
添加OP的编辑作为实际答案:
xcopy source [destination] /y /r
/y Suppress prompt to confirm overwriting a file.
/r Overwrite read-only files.
Run Code Online (Sandbox Code Playgroud)
小智 3
如果这是一个只读文件,不会启用写入标志,因此您无法编辑它。我的想法/解决方法是使文件可编辑,然后修改,然后转换回只读。
attrib -r file.txt
your code goes here
attrib +r file.txt
看看这是否适合您,如果您有任何疑问,请告诉我。