中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理日期问题 上一主题 | 下一主题
vili
新手上路





积分 12
发帖 4
注册 2006-3-21
状态 离线
『楼 主』:  批处理日期问题

使用md %date%命令可以建立一当前日期为名的文件夹,但是如何将指定文件copy到这个文件夹下呢?

2006-3-21 18:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vili
新手上路





积分 12
发帖 4
注册 2006-3-21
状态 离线
『第 2 楼』:  补充一下

忘了说明了,环境WIN2K——CMD

2006-3-21 18:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Michael
钻石会员





积分 10046
发帖 3039
注册 2002-11-11
状态 离线
『第 3 楼』:  

copy filenmae "%date%"



简单就是美
2006-3-21 18:15
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vili
新手上路





积分 12
发帖 4
注册 2006-3-21
状态 离线
『第 4 楼』:  

但是我并不是在当前目录下执行,而是类似From d:\aaa To e:\bbb\日期 这样子的
如果按照 d:\bbb\%date% 就会提示文件夹错误
另外楼上的方法是将文件本身改名了,这样也不符合要求啊:日期是用于文件夹名称上的,,且源目录中会存有多个文件

不过还是感谢楼上的热心,谢谢!

[ Last edited by vili on 2006-3-21 at 18:39 ]

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





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

晕啊,你echo %date%看看到底是什么。。。
比如今天吧,%date%变量其实代表的是   "2006-03-21 星期二",也就是说你用md命令执行的就是  md 2006-03-21 星期二。所以建立的文件夹名为 2006-03-21 和 星期二 ,而你的copy命令用到的时候就应该是:
copy filename 2006-03-21 星期二
不出错才怪呢,你试试copy d:\aaa e:\bbb\%date:~0,10%\aaa
或者md后直接一句cd %date:~0,10%,然后copy中把源文件的路径带上。

[ Last edited by 3742668 on 2006-3-21 at 20:14 ]

2006-3-21 19:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vili
新手上路





积分 12
发帖 4
注册 2006-3-21
状态 离线
『第 6 楼』:  

问题解决,谢谢!
但是还想多问一句:2006-03-21明明是10个字符,为什么用~0,10%?这样不是11个字符吗?但是事实证明确实可行,为什么?

2006-3-22 11:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 7 楼』:  

我觉得应该是%date:~-10%这个才能够得到这个环境变量的最后10个字符,应为%date:~0,10%这样的形式是说从偏移量为1开始的取后10个字符 .................

2006-3-22 14:31
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
smileseeker
中级用户




积分 316
发帖 83
注册 2005-3-1
状态 离线
『第 8 楼』:  

其实楼主如果加上一对引号

md "%date%"     

就是建立一个文件夹了

3楼的Michael大侠也有写明

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





积分 168
发帖 85
注册 2005-8-26
状态 离线
『第 9 楼』:  

以前的系统(Ghost XP),在命令行下运行  md %date% 只会创建1个文件夹:
2006-04-04

现在的系统(纯净版XP)用  md %date% 却创建出  2个文件夹:2006-04-04  星期二
(这样的话,我以前的一些批处理脚本就会出问题了,
比如:我以前用  dir /A >dir%date% .txt  就可以 生成 dir 2006-04-04.txt现在运行就会出错。)
现在虽然也可以用  md "%date%" 创建  一个文件夹 “2006-04-04 星期二"
但是我只想生成  一个文件夹 “2006-04-04 "

有谁知道怎么回事呀?小弟先行感谢了!

2006-4-4 22:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





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

很想知道楼上两位有无注意看回贴。。。

2006-4-4 23:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by lpclimber at 2006-4-4 22:34:
以前的系统(Ghost XP),在命令行下运行  md %date% 只会创建1个文件夹:
2006-04-04

现在的系统(纯净版XP)用  md %date% 却创建出  2个文件夹:2006-04-04  星期 ...

找你这个问题的答案,确实费了一些力气。

关键在于“区域和语言选项”中的短日期格式。

显示星期的短日期格式为:yyyy-MM-dd ddd
而不显示的格式为:yyyy-MM-dd

这里的设置直接影响了%date%(同时包括date命令)的日期显示格式。

另外,注册表中的这个键值也是有效的:
HKEY_CURRENT_USER\Control Panel\International\sShortDate

区域和语言选项设置的就是这个注册表键值。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2006-4-4 23:43
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
lpclimber
初级用户





积分 168
发帖 85
注册 2005-8-26
状态 离线
『第 12 楼』:  

Climbing太厉害了!
我也找了很久,不过没有找到!
太感谢了!!

2006-4-4 23:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lpclimber
初级用户





积分 168
发帖 85
注册 2005-8-26
状态 离线
『第 13 楼』:  

不过我发现实际的与Climbing讲的
有一点出入

显示星期的短日期格式为:yyyy-M-d    (中文XP系统默认)

不显示的格式为:yyyy-MM-dd


如附件图所示

附件 1: default.gif (2006-4-5 13:11, 39.11 K, 下载附件所需积分 1 点 ,下载次数: 1)


附件 2: genggai.GIF (2006-4-5 13:11, 38.52 K, 下载附件所需积分 1 点 ,下载次数: 1)


2006-4-5 13:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


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

Re lpclimber:

      关于%date%和sShortDate的关系确实比较微妙。在sShortDate取系统默认值时,%date%也会取CMD默认值,只是这两个默认值之间不存在制约关系,但它们都同时受区域和语言选项的制约,不同的代码页(比如437与936),不同的区域代码(比如UK与USA),都会产生不同的影响。而当sShortDate被修改时,%date%则会受到同样的影响。

      因此,要保持日期格式的统一性,就必须修改sShortDate,而%time%则无法找到对应有效的注册表值。



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




积分 71
发帖 34
注册 2006-9-15
状态 离线
『第 15 楼』:  

其实  md %date%&   也可以的

2006-9-29 00:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: