中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 研究:批处理分析提取指定目录的更新文件
作者:
标题: 研究:批处理分析提取指定目录的更新文件 上一主题 | 下一主题
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『楼 主』:  研究:批处理分析提取指定目录的更新文件

用批处理分析指定目录里的更新文件。

例如:e:\game\热血传奇;d:\劲舞团;d:\热血江湖......等
运行第一次批处理的时候,根据配置文件(config.ini)在D、E盘中,查找要更新的目录
config.ini
热血江湖
热血传奇

需要更新什么目录就输入什么。
new.ini  收集指定目录里更新前文件大小、时间
old.ini    收集指定目录里更新后文件大小、时间
比较 new.ini old.ini ,之后把文件大小或时间不同的文件复制到 d:\更新\热血江湖;d:\更新\热血传奇。
复制后重新收一份指定目录的最新文件大小、时间,保存到new.ini,以便下一次的对比。

2007-1-13 16:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 2 楼』:  

生成new.ini个关键,以便后来的old.ini能和它进行比较

2007-1-13 18:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 3 楼』:  

这样行不行
UPDATE.CMD
@ECHO OFF
SET SP=\\Server\NetGame\
SET CP=D:\NetGame\
SET LOG=\\Server\LOG\
IF [%1] == [] GOTO :EOF
IF [%2] == [] (
SET ST=start.lnk) ELSE (
IF EXIST "%CP%%~1\%~2.EXE" (
SET ST=%~2.EXE) ELSE (
SET ST=start.lnk)
)
IF NOT EXIST "%CP%%~1\" GOTO :EOF
XCOPY /D /Y %SP%%~1\UP.TXT %CP%%~1\|FIND " 0 ">NUL&&"%CP%%~1\%ST%"&&GOTO :EOF
XCOPY /E /H /R /K /X /D /Y /Q /C /G %SP%%~1\ %CP%%~1\ 2>"%LOG%%COMPUTERNAME%%~1.TXT"
"%CP%%~1\%ST%"
EXIT
UPDATD.CMD "魔兽世界" "launcher"

2007-1-13 23:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 4 楼』:  

谢谢everest79兄,这样并没达到上面的要求。能再改进些吗?

2007-1-14 06:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 5 楼』:  

请高手来帮帮忙呀~~~~~~~~~~~~~~~

2007-1-14 14:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 6 楼』:  

你是想生成一个类似于windows文件系统快照的ini文件来进行更新对比吗?

2007-1-15 08:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qasa
高级用户




积分 959
发帖 311
注册 2006-4-11
来自 广东-LianJiang
状态 离线
『第 7 楼』:  

恩恩,再帮我想下喽。。。。。
namejm兄那去了,还不来帮帮我。。。。:(

2007-1-15 13:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 8 楼』:  

UPDATE2.0.CMD
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET SP=\\Server\UPDATE$\
SET SPC=%SP%CACHE\
SET CP=%ProgramFiles%\UPDATE\
SET CPC=%CP%CACHE\
SET SGP=\\Server\NetGame$\
SET CGP=D:\NetGame\
SET SCAN=%CGP%
SET UPH=%SCAN%%~1\%~1.ini

IF [%~1] == [-s] (
SET GO=CALL :SC
IF NOT [%~2] == [] (
SET TO=AN %~2
SET SCAN=%SGP%
SET UPH=F:\UPDATE\CACHE\%~2.ini
) ELSE SET GO=
)
%GO%%TO%
IF [%1] == [] (
GOTO :EOF) ELSE (
IF [%2] == [] (
GOTO :EOF) ELSE (
IF [%3] == [] (
GOTO :EOF)
)
)
IF NOT EXIST "%CGP%%~1\" MD "%CGP%%~1\"
IF NOT EXIST "%SP%" GOTO :START
IF NOT EXIST "%CGP%%~1\%~1.ini" CALL :SCAN %1
XCOPY /H /R /K /X /Y /Q /C /G "%SPC%*" "%CPC%">nul
IF EXIST "%CPC%%~nx0" CALL :NEW %0 %1 %2 %3
FOR /F "tokens=*" %%a IN ("%CPC%%~1.ini") DO (
FOR /F "tokens=*" %%b IN ("%CGP%%~1\%~1.ini") DO (
IF NOT "%%~tza" == "%%~tzb" (
GOTO NEXT1) ELSE (
GOTO START)
)
)

:NEXT1
ECHO.>"%CP%update.dat"
FOR /F "tokens=1,2,3,*" %%i IN ('type "%CPC%%~1.ini"') DO (
FINDSTR /B /E /I /C:"%%i %%j %%k %%l" "%CGP%%~1\%~1.ini">nul||ECHO %%l>>"%CP%update.dat"
)

PUSHD %CGP%%~1
XCOPY /T /E /Y "%SGP%%~1"
FOR /F "tokens=*" %%i IN ('type "%CP%update.dat"') DO (
XCOPY /H /R /K /X /Y /Q /C /G /D "%SGP%%~1\%%i" "%%~dpi">nul
)
CALL :SCAN %1
IF /I NOT "%~2" == "DEL" GOTO :START

:NEXT2
FOR /F "tokens=1,2,3,*" %%i IN (%CGP%%~1\%~1.ini) DO (
FINDSTR /B /E /I /C:"%%i %%j %%k %%l" "%CPC%%~1.ini">nul||del /f /q %%~dpnxl
)
pause
GOTO :START

:SCAN
ECHO.>"%UPH%"
FOR /F "tokens=*" %%i IN ('DIR /B /S /A:-D "%SCAN%%~1"') DO (
SET FP=%%~ftzi
SET FP=!FP:%SCAN%%~1\=!
ECHO !FP!>>"%UPH%")
GOTO :EOF

:NEW
FC /L "%CPC%%~nx0" %1|find "*"||GOTO :EOF
ECHO @ECHO OFF>"%CP%temp.cmd"
ECHO COPY "%CPC%%~nx0" "%CP%" /Y>>"%CP%temp.cmd"
ECHO START /I "UPDATE" %~nx1 "%~2" "%~3" "%~4">>"%CP%temp.cmd"
ECHO DEL /F /Q "%CPC%%~nx0">>"%CP%temp.cmd"
ECHO DEL /F /Q "%CP%temp.cmd"^&EXIT>>"%CP%temp.cmd"
START /I /MIN "NEW" "%CP%temp.cmd"
EXIT

:START
START "UPDATE DONE.." "%CGP%%~1\%~3"
EXIT


2007-1-15 16:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: