我的网络共享上有一个批处理文件,比如\ Sids \ Awesome \ Network \ Share.bat。我在多台计算机上有这个bat文件的副本。我想以这样的方式设置文件,以便我可以在我的网络共享上更新Share.bat,当我在本地计算机上运行Share.bat时,它可以检查网络共享中的副本的上次修改时间和自我更新。有关如何做到这一点的任何建议吗?
我的所有搜索结果都导致进行某种目录列表,然后选择文件。不幸的是,这在网络共享上是不可能的。现在,我通过在C#中编写一个从脚本中调用的小应用程序来解决这个问题。如果应用程序认为有必要进行更新,则会退出并显示错误,如果应用程序退出并显示错误代码,则会更新脚本。我想删除这种依赖。
答案 0 :(得分:0)
对版本号进行硬编码(此处为第二行)。获取服务器版本和本地版本并进行比较。如果版本号不同,请从服务器复制文件并重新启动。
@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
"消息。