求一个比较文件的批处理,

rottenapple 2009-01-21 10:31:54
想用批处理实现如下功能。(daily job)
1.从文件服务器上download文件到temp目录下
2.比较temp目录下的文件和dat目录下的文件(按字母排序?)是否一致,我想根据lastupdate date来判断,如果有更新,就把temp的文件copy到dat目录下
换句话说,只想取得更新过的文件,怎么做呢?
谢谢

...全文
342 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin29276 2009-03-11
  • 打赏
  • 举报
回复
原来是ftp里面的命令....佩服007
lin29276 2009-03-11
  • 打赏
  • 举报
回复
>>"%ftpFile%" echo lcd "%DownFolder%"


lcd 是啥
elitel 2009-03-10
  • 打赏
  • 举报
回复
高手
m00z 2009-02-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ljc007 的回复:]
由于批处理很难判断ftp下载何时能够完成,建议分成两个bat来做:

先运行download.bat

BatchFile code@echooffrem指定FTP用户名setftpUser=USERNAMErem指定FTP密码setftpPass=PASSWORDrem指定FTP服务器地址setftpIP=192.168.0.2rem指定待下载的文件位于FTP服务器的什么位置setftpFolder=SharedFile\Log\rem指定从FTP下载下来的文件存放到什么地方setDownFolder=C:\temp\setftpFile=%temp%\TempAcc.txt>"%ftpFile%"echo%ftpU…
[/Quote]
佩服!致敬
rottenapple 2009-02-27
  • 打赏
  • 举报
回复
你说说得比较temp和dat是否一致,指的是文件名还是别的什么,你想按照lastupdate来判断,会有同名文件?
~~~ 比较temp目录下的文件和dat目录下的文件是否一样,我想按照lastupdate 来判断不知道可行否,文件名是一样的

ljc007 2009-02-17
  • 打赏
  • 举报
回复
由于批处理很难判断ftp下载何时能够完成,建议分成两个bat来做:

先运行download.bat

[code=BatchFile]@echo off
rem 指定FTP用户名
set ftpUser=USERNAME
rem 指定FTP密码
set ftpPass=PASSWORD
rem 指定FTP服务器地址
set ftpIP=192.168.0.2
rem 指定待下载的文件位于FTP服务器的什么位置
set ftpFolder=SharedFile\Log\
rem 指定从FTP下载下来的文件存放到什么地方
set DownFolder=C:\temp\

set ftpFile=%temp%\TempAcc.txt
>"%ftpFile%" echo %ftpUser%
>>"%ftpFile%" echo %ftpPass%
>>"%ftpFile%" echo cd "%ftpFolder%"
>>"%ftpFile%" echo lcd "%DownFolder%"
>>"%ftpFile%" echo bin
>>"%ftpFile%" echo mget *.*
>>"%ftpFile%" echo bye
start ftp -v -i -s:"%ftpFile%" %ftpIP%[/code]

ftp下载完成以后,在运行compare.bat

[code=BatchFile]@echo off
::演示:用FTP下载的文件去更新本机的文件。
::如果演示结果无误,把copy前面的echo去掉,即可实现真正更新。

rem 指定从FTP下载下来的文件存放到什么地方
set DownFolder=C:\test
rem 指定待比较的本机文件存放到什么地方
set CompareFolder=C:\dat

for /f "skip=4 delims= " %%a in ('reg query "HKEY_CURRENT_USER\Control Panel\International" /v sTimeFormat') do (
set "RegTimeOld=%%a"
)
set RegTimeOld=%RegTimeOld:~-8%
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sTimeFormat /t REG_SZ /d H:mm:ss /f>nul
>"%temp%\DownList.txt" type nul
for /f "skip=5 delims=" %%a in ('dir "%DownFolder%"^|findstr ":*[a-z]"') do (
>>"%temp%\DownList.txt" echo %%a
)
>"%temp%\CompareList.txt" type nul
for /f "skip=5 delims=" %%a in ('dir "%CompareFolder%"^|findstr ":*[a-z]"') do (
>>"%temp%\CompareList.txt" echo %%a
)
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sTimeFormat /t REG_SZ /d %RegTimeOld% /f>nul
findstr /x /v /g:"%temp%\CompareList.txt" "%temp%\DownList.txt">"%temp%\CopyList.txt"
for /f "usebackq tokens=4 delims= " %%a in ("%temp%\CopyList.txt") do (
echo copy /y "%DownFolder%\%%a" "%CompareFolder%"
)
pause[/code]
DelphiJavaDominoVB 2009-02-16
  • 打赏
  • 举报
回复
这个问题问得好
再见品月 2009-01-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Forever_Young 的回复:]
你的问题描述不清楚

FTP支持匿名登陆么?
一次要下载单个文件还是多个?
你说说得比较temp和dat是否一致,指的是文件名还是别的什么,你想按照lastupdate来判断,会有同名文件?
[/Quote]
牛人。。。
瘦羊博士 2009-01-21
  • 打赏
  • 举报
回复
YANG来了~
你可以烦死他~
必定不会让你失望~
Forever_Young 2009-01-21
  • 打赏
  • 举报
回复
你的问题描述不清楚

FTP支持匿名登陆么?
一次要下载单个文件还是多个?
你说说得比较temp和dat是否一致,指的是文件名还是别的什么,你想按照lastupdate来判断,会有同名文件?
yeah920 2009-01-21
  • 打赏
  • 举报
回复
这里有个叫羊的dos高手高手高高手

6,868

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧