中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 求助:不同服务器之间文件复制并改名成当前时间index=
作者:
标题: 求助:不同服务器之间文件复制并改名成当前时间index= 上一主题 | 下一主题
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『楼 主』:  求助:不同服务器之间文件复制并改名成当前时间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 ]

2006-2-28 00:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xxniao
初级用户





积分 66
发帖 23
注册 2006-2-27
来自 浙江
状态 离线
『第 2 楼』:  

先说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 ]

2006-2-28 00:28
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 3 楼』:  

谢谢xxniao
好象不能直接用copy ftp来做,用第二种方法可行,即
copy \\svr2\ftp%\pl d:\backup\文件名.txt
但我的困难就是这个文件名的名称不知如何调用变量,我试过%date%%time%不行

2006-2-28 10:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xxniao
初级用户





积分 66
发帖 23
注册 2006-2-27
来自 浙江
状态 离线
『第 4 楼』:  

晕,
第一个 ftp:\  其实我这个指的是你文件的路径啊!!   

用日期和时间的变量怎么会不行呢!!

2006-2-28 12:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 5 楼』:  

不好意思, 我对dos真的不熟。
我试着做一个本地操作,如:
copy test.txt %date%%time%.txt
屏幕出一错误提示:
The syntax of the command is incorrect.
请指点,谢谢!

2006-2-28 13:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 6 楼』:  

对不起,原来我少了一个定向符
我是这样做的
copy test.txt > %date%%time%.txt

成功了,非常感谢!

2006-2-28 13:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 7 楼』:  

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"



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2006-3-2 16:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 8 楼』:  

谢谢willsort大哥。这个方法确实可行,我得到的文件名最终如下:
Fri 2006-03-03 9-50-54.42.txt

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

再次致谢!

2006-3-3 10:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 9 楼』:  

%date:~4,10%%time:~1,7%

2006-3-3 11:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 10 楼』:  

谢谢楼上这位兄台!谢谢!!

2006-3-7 10:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
robinlong
初级用户





积分 50
发帖 17
注册 2006-2-27
状态 离线
『第 11 楼』:  

最后我是这样做的:
%date:~4,10%-%time:~0,8%

2006-3-7 10:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: