|
zaijianbujian
新手上路
积分 12
发帖 4
注册 2006-6-9
状态 离线
|
『楼 主』:
[求助]用批处理实现拷贝指定文件到别的计算机上指定文件夹
A计算矶有个org文件夹共享,其中每天18:00定时形成"X+当前系统日期+S.txt"文件(例如X060609S.txt)。现在想于每天20:00左右把当天形成的文件拷贝到B计算机的共享文件夹bak中去。A和B计算机都是2000系统。
原来的想法通过建立一个 move F:\org\*.* \\B\bak\的批处理。然后在A上面执行该批处理的计划任务,可是这样做org文件夹里面的文件都没有了,我只想当天拷贝当天的,不剪切移动。诚挚请求各位大虾告知!谢谢了!!
|
|
2006-6-9 14:14 |
|
|
bagpipe
银牌会员
DOS联盟捡破烂的
积分 1144
发帖 425
注册 2005-10-20 来自 北京
状态 离线
|
『第
2 楼』:
这段代码我只是粗糙的写了一下,可能出现问题,你先试试吧,哪里了出了问题你在发帖就可以了,没有经过测试,取得日期是WIN2000系统
@echo off
set a=
for /f "tokens=2,3,4 delims=- " %%a in ("%date%") do set a=%%a%%b%%c
at \\A 20:00 ""copy F:\org\x%a:~2% \\B\bak\""
|
|
2006-6-9 15:21 |
|
|
bagpipe
银牌会员
DOS联盟捡破烂的
积分 1144
发帖 425
注册 2005-10-20 来自 北京
状态 离线
|
『第
3 楼』:
将上句at \\A 20:00 ""copy F:\org\x%a:~2% \\B\bak\""改成
at \\A 20:00 ""copy F:\org\x%a:~2%s.txt \\B\bak\""
|
|
2006-6-9 15:23 |
|
|
zaijianbujian
新手上路
积分 12
发帖 4
注册 2006-6-9
状态 离线
|
『第
4 楼』:
谢谢bagpipe大侠答复!可是不行。AB计算机没有任何反应。可能是date的问题。
|
|
2006-6-9 15:55 |
|
|
bagpipe
银牌会员
DOS联盟捡破烂的
积分 1144
发帖 425
注册 2005-10-20 来自 北京
状态 离线
|
『第
5 楼』:
呵呵,你运行完毕后,在CMD下执行AT回车,看看有没有定时执行的任务,如果有那就得等到晚上8点钟才会COPY过去呢,如果没有说明有的地方执行错误了,时间和日期跟你的说明一样,你在仔细看看,x060609s.txt我是按照这个来处理的
|
|
2006-6-9 16:25 |
|
|
zaijianbujian
新手上路
积分 12
发帖 4
注册 2006-6-9
状态 离线
|
『第
6 楼』:
谢谢。我在cmd下面运行了at命令。有任务。而且命令行显示的也是正确命令,的确是copy x060609s.txt。我现在不十分理解的是
“set a=
for /f "tokens=2,3,4 delims=- " %%a in ("%date%") do set a=%%a%%b%%c”这个命令中的tokens=2,3,4什么意思,看windows的帮助也是看的一头雾水。
是不是和060609这个日期有关啊。如果想取得20060609是不是又应该又变化了。有时间的话,是否能帮忙解答一下。谢谢!!
|
|
2006-6-9 17:09 |
|
|
zaijianbujian
新手上路
积分 12
发帖 4
注册 2006-6-9
状态 离线
|
『第
7 楼』:
试验了好多次后:
把命令中的“at 几点”和后面的两对“”去掉了后
set a=
for /f "tokens=2,3,4 delims=- " %%a in ("%date%") do set a=%%a%%b%%c
copy F:\org\x%a:~2%s.txt \\B\bak\
保存一个1.bat文件.在cmd下面运行后命令成功执行。
如果加上at几点自动运行后,在cmd下面用at命令后看“状态ID”显示是错误的。不知道什么原因。我现在是用windows的计划任务加载1.bat运行,实现了要求,就是有点遗憾没有用上at。
通过修改“%a:~2%s.txt ” 中的2为3后明白了是在字符窜中从第3位开始取字符得意思。多多试验。打扰bagpipe大侠了。
再次表示感谢!!
[ Last edited by zaijianbujian on 2006-6-9 at 17:39 ]
|
|
2006-6-9 17:37 |
|