中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 01:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 研究:批处理分析提取指定目录的更新文件 查看 964 回复 7
楼 主 研究:批处理分析提取指定目录的更新文件 发表于 2007-01-13 16:39 ·  中国 广东 湛江 电信
高级用户
★★★
积分 959
发帖 311
注册 2006-04-11 14:08
20年会员
UID 53665
性别 男
来自 广东-LianJiang
状态 离线
用批处理分析指定目录里的更新文件。

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

需要更新什么目录就输入什么。
new.ini 收集指定目录里更新前文件大小、时间
old.ini 收集指定目录里更新后文件大小、时间
比较 new.ini old.ini ,之后把文件大小或时间不同的文件复制到 d:\更新\热血江湖;d:\更新\热血传奇。
复制后重新收一份指定目录的最新文件大小、时间,保存到new.ini,以便下一次的对比。
2 发表于 2007-01-13 18:38 ·  中国 广东 湛江 电信
高级用户
★★★
积分 959
发帖 311
注册 2006-04-11 14:08
20年会员
UID 53665
性别 男
来自 广东-LianJiang
状态 离线
生成new.ini个关键,以便后来的old.ini能和它进行比较
3 发表于 2007-01-13 23:28 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
这样行不行
UPDATE.CMD

@ECHO OFF
SET SP=\\Server\NetGame\
SET CP=D:\NetGame\
SET LOG=\\Server\LOG\
IF == GOTO :EOF
IF == (
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"
4 发表于 2007-01-14 06:43 ·  中国 广东 湛江 电信
高级用户
★★★
积分 959
发帖 311
注册 2006-04-11 14:08
20年会员
UID 53665
性别 男
来自 广东-LianJiang
状态 离线
谢谢everest79兄,这样并没达到上面的要求。能再改进些吗?
5 发表于 2007-01-14 14:25 ·  中国 广东 湛江 电信
高级用户
★★★
积分 959
发帖 311
注册 2006-04-11 14:08
20年会员
UID 53665
性别 男
来自 广东-LianJiang
状态 离线
请高手来帮帮忙呀~~~~~~~~~~~~~~~
6 发表于 2007-01-15 08:16 ·  中国 广东 广州 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
你是想生成一个类似于windows文件系统快照的ini文件来进行更新对比吗?
7 发表于 2007-01-15 13:42 ·  中国 广东 湛江 电信
高级用户
★★★
积分 959
发帖 311
注册 2006-04-11 14:08
20年会员
UID 53665
性别 男
来自 广东-LianJiang
状态 离线
恩恩,再帮我想下喽。。。。。
namejm兄那去了,还不来帮帮我。。。。:(
8 发表于 2007-01-15 16:19 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
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 == (
SET GO=CALL :SC
IF NOT == (
SET TO=AN %~2
SET SCAN=%SGP%
SET UPH=F:\UPDATE\CACHE\%~2.ini
) ELSE SET GO=
)
%GO%%TO%
IF == (
GOTO :EOF) ELSE (
IF == (
GOTO :EOF) ELSE (
IF == (
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


论坛跳转: