中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-30 00:53
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » 求助:不同服务器之间文件复制并改名成当前时间index= 查看 867 回复 10
楼 主 求助:不同服务器之间文件复制并改名成当前时间index= 发表于 2006-02-28 00:04 ·  中国 广东 惠州 中移铁通
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
请教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 ]
2 发表于 2006-02-28 00:28 ·  中国 浙江 温州 电信
初级用户
积分 66
发帖 23
注册 2006-02-27 10:04
20年会员
UID 51025
性别 男
来自 浙江
状态 离线
先说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 ]
3 发表于 2006-02-28 10:42 ·  中国 广东 惠州 电信
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
谢谢xxniao
好象不能直接用copy ftp来做,用第二种方法可行,即
copy \\svr2\ftp%\pl d:\backup\文件名.txt
但我的困难就是这个文件名的名称不知如何调用变量,我试过%date%%time%不行
4 发表于 2006-02-28 12:03 ·  中国 浙江 温州 电信
初级用户
积分 66
发帖 23
注册 2006-02-27 10:04
20年会员
UID 51025
性别 男
来自 浙江
状态 离线
晕,
第一个 ftp:\ 其实我这个指的是你文件的路径啊!!

用日期和时间的变量怎么会不行呢!!
5 发表于 2006-02-28 13:33 ·  中国 广东 惠州 电信
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
不好意思, 我对dos真的不熟。
我试着做一个本地操作,如:
copy test.txt %date%%time%.txt
屏幕出一错误提示:
The syntax of the command is incorrect.
请指点,谢谢!
6 发表于 2006-02-28 13:44 ·  中国 广东 惠州 电信
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
对不起,原来我少了一个定向符
我是这样做的
copy test.txt > %date%%time%.txt

成功了,非常感谢!
7 发表于 2006-03-02 16:25 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
23年会员
UID 19
性别 男
状态 离线
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:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
8 发表于 2006-03-03 10:04 ·  中国 广东 惠州 电信
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
谢谢willsort大哥。这个方法确实可行,我得到的文件名最终如下:
Fri 2006-03-03 9-50-54.42.txt

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

再次致谢!
9 发表于 2006-03-03 11:11 ·  中国 湖北 荆门 电信
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
%date:~4,10%%time:~1,7%
10 发表于 2006-03-07 10:16 ·  美国 国际航空电讯集团公司(SITA)
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
谢谢楼上这位兄台!谢谢!!
11 发表于 2006-03-07 10:19 ·  美国 国际航空电讯集团公司(SITA)
初级用户
积分 50
发帖 17
注册 2006-02-27 23:44
20年会员
UID 51073
性别 男
状态 离线
最后我是这样做的:
%date:~4,10%-%time:~0,8%
论坛跳转: