Board logo

标题: 求助:不同服务器之间文件复制并改名成当前时间index= [打印本页]

作者: robinlong     时间: 2006-2-28 00:04    标题: 求助:不同服务器之间文件复制并改名成当前时间index=

请教Willsort 和Climbing等高手:

我公司有二台服务器Svr1和Svr2,其中Svr2是FTP服务器(都是win2K),在FTP根目录下每天有一个文件PO(文件无后缀名,它每天会更新)需复制到Svr1下面的d:\backup目录下,但复制后的文件名要以当前机器时间(如:0602271012.txt,06年2月27日10时12分)为文件名, 即每次复制后的文件名都不同,这样就能留下备份。请问这个批处理应如何做?

但是不能用映射磁盘的方法(可考虑映射后待复制完后再取消映射)。可否结合ftp中的一些命令来完成?

非常感谢各位能人帮忙!!!

[ Last edited by robinlong on 2006-2-28 at 00:06 ]
作者: xxniao     时间: 2006-2-28 00:28
先说svr1   copy ftp:\po d:\backup svr1%date%%time%.txt

然后SVR2也是一样从SRV2复制文件到srv1 copy \\svr2\ftp\po D:\backup srv2%date%%time%.txt
批处理这样写
@echo off
copy ftp:\po d:\backup\svr1%date%%time%.txt
copy \\svr2\ftp\po D:\backup\srv2%date%%time%.txt
exit

不知道我理解对了没有!!

[ Last edited by xxniao on 2006-2-28 at 00:29 ]
作者: robinlong     时间: 2006-2-28 10:42
谢谢xxniao
好象不能直接用copy ftp来做,用第二种方法可行,即
copy \\svr2\ftp%\pl d:\backup\文件名.txt
但我的困难就是这个文件名的名称不知如何调用变量,我试过%date%%time%不行
作者: xxniao     时间: 2006-2-28 12:03
晕,
第一个 ftp:\  其实我这个指的是你文件的路径啊!!   

用日期和时间的变量怎么会不行呢!!
作者: robinlong     时间: 2006-2-28 13:33
不好意思, 我对dos真的不熟。
我试着做一个本地操作,如:
copy test.txt %date%%time%.txt
屏幕出一错误提示:
The syntax of the command is incorrect.
请指点,谢谢!
作者: robinlong     时间: 2006-2-28 13:44
对不起,原来我少了一个定向符
我是这样做的
copy test.txt > %date%%time%.txt

成功了,非常感谢!
作者: willsort     时间: 2006-3-2 16:25
Re robinlong:

      copy test.txt > %date%%time%.txt 的用法是达不到你的预期目标的,此句意为将当前目录下的 test.txt 拷贝到当前目录下,因为复制的源与目标相同,所以会报出“无法复制自身”的错误信息,而这个错误信息被你的 > 重定向到了 %date%%time%.txt 文件中。而同时因为 %date% 存在空格,因此只有其前半部分被识别为文件名,比如 2006-3-2/???/星期四 之类。而其后的时间以及 .txt 的扩展名都被舍弃了。

      因此,你的问题应该出在 %date%%time% 这个文件名上,将它用双引号引起,似可解决问题。如下:  

      本地:copy test.txt "%date%%time%.txt"

      服务器:copy \\svr2\ftp\po "d:\backup\%date%%time%.txt"
作者: robinlong     时间: 2006-3-3 10:04
谢谢willsort大哥。这个方法确实可行,我得到的文件名最终如下:
Fri 2006-03-03 9-50-54.42.txt

如果我要去掉Fri和后面的毫秒.42,请问有没有方法呢?

再次致谢!
作者: 3742668     时间: 2006-3-3 11:11
%date:~4,10%%time:~1,7%
作者: robinlong     时间: 2006-3-7 10:16
谢谢楼上这位兄台!谢谢!!
作者: robinlong     时间: 2006-3-7 10:19
最后我是这样做的:
%date:~4,10%-%time:~0,8%