繁体   English   中英

根据网络共享中文件的最后修改时间戳更新批处理文件

[英]Update a batch file based on the last modified timestamp on a file in a network share

我的网络共享上有一个批处理文件,例如\\ Sids \\ Awesome \\ Network \\ Share.bat。 我在多台计算机上都有此bat文件的副本。 我想要以一种可以在网络共享上更新Share.bat的方式来设置文件,并且当我在本地计算机上运行Share.bat时,它可以检查网络共享中的副本的上次修改时间,并且自我更新。 有关如何执行此操作的任何建议?

我所有的搜索结果都导致做了某种目录列表,然后选择了文件。 不幸的是,这在网络共享上是不可能的。 现在,我可以通过在脚本中调用的C#编写一个小应用程序来解决问题。 如果应用程序认为有必要进行更新,则会退出并显示错误,如果应用程序退出并显示错误代码,则会更新脚本。 我想删除此依赖项。

硬编码版本号(此处为第二行)。 获取服务器版本和本地版本并进行比较。 如果版本号不同,请从服务器复制文件并重新启动。

@echo off
REM version=5.1
for /f "tokens=2 delims==" %%a in ('findstr /b /c:"REM version=" "\\Sids\Awesome\Network\%~nx0"') do set sv=%%a
for /f "tokens=2 delims==" %%a in ('findstr /b /c:"REM version=" "%~f0"') do set lv=%%a
echo Server: %sv%
echo Local:  %lv%
if "%sv%" == "%lv%" goto :continue
echo updating...
(xcopy /y "\\Sids\Awesome\Network\%~nx0" >nul || goto :eof) & "%~f0"
[should never arive at this line]
:continue
echo current version.

如果要查看“ 1个文件已复制”消息,则可以省略>nul

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM