![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 03:37 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理日期问题 |
| 可打印版本 2,670 / 15 |
| 第1楼 vili | 发表于 2006-03-21 18:05 |
| 新手上路 发帖 4 积分 12 | |
|
批处理日期问题 使用md %date%命令可以建立一当前日期为名的文件夹,但是如何将指定文件copy到这个文件夹下呢?
|
|
| 第2楼 vili | 发表于 2006-03-21 18:10 |
| 新手上路 发帖 4 积分 12 | |
|
补充一下 忘了说明了,环境WIN2K——CMD
|
|
| 第3楼 Michael | 发表于 2006-03-21 18:15 |
| 钻石会员 发帖 3,040 积分 10,051 | |
|
copy filenmae "%date%"
|
|
| 第4楼 vili | 发表于 2006-03-21 18:20 |
| 新手上路 发帖 4 积分 12 | |
|
但是我并不是在当前目录下执行,而是类似From d:\aaa To e:\bbb\日期 这样子的
如果按照 d:\bbb\%date% 就会提示文件夹错误 另外楼上的方法是将文件本身改名了,这样也不符合要求啊:日期是用于文件夹名称上的,,且源目录中会存有多个文件 不过还是感谢楼上的热心,谢谢! [ Last edited by vili on 2006-3-21 at 18:39 ] |
|
| 第5楼 3742668 | 发表于 2006-03-21 19:50 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
晕啊,你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 ] |
|
| 第6楼 vili | 发表于 2006-03-22 11:31 |
| 新手上路 发帖 4 积分 12 | |
|
问题解决,谢谢!
但是还想多问一句:2006-03-21明明是10个字符,为什么用~0,10%?这样不是11个字符吗?但是事实证明确实可行,为什么? |
|
| 第7楼 bagpipe | 发表于 2006-03-22 14:31 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
我觉得应该是%date:~-10%这个才能够得到这个环境变量的最后10个字符,应为%date:~0,10%这样的形式是说从偏移量为1开始的取后10个字符 .................
|
|
| 第8楼 smileseeker | 发表于 2006-04-04 16:36 |
| 中级用户 发帖 83 积分 316 | |
|
其实楼主如果加上一对引号
md "%date%" 就是建立一个文件夹了 3楼的Michael大侠也有写明 |
|
| 第9楼 lpclimber | 发表于 2006-04-04 22:34 |
| 初级用户 发帖 85 积分 168 | |
|
以前的系统(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 " 有谁知道怎么回事呀?小弟先行感谢了! |
|
| 第10楼 3742668 | 发表于 2006-04-04 23:30 |
| 荣誉版主 发帖 718 积分 2,013 | |
|
很想知道楼上两位有无注意看回贴。。。
|
|
| 第11楼 Climbing | 发表于 2006-04-04 23:43 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
Originally posted by lpclimber at 2006-4-4 22:34: 找你这个问题的答案,确实费了一些力气。 关键在于“区域和语言选项”中的短日期格式。 显示星期的短日期格式为:yyyy-MM-dd ddd 而不显示的格式为:yyyy-MM-dd 这里的设置直接影响了%date%(同时包括date命令)的日期显示格式。 另外,注册表中的这个键值也是有效的: HKEY_CURRENT_USER\Control Panel\International\sShortDate 区域和语言选项设置的就是这个注册表键值。 |
|
| 第12楼 lpclimber | 发表于 2006-04-04 23:58 |
| 初级用户 发帖 85 积分 168 | |
|
Climbing太厉害了!
我也找了很久,不过没有找到! 太感谢了!! |
|
| 第13楼 lpclimber | 发表于 2006-04-05 13:11 |
| 初级用户 发帖 85 积分 168 | |
|
不过我发现实际的与Climbing讲的
有一点出入 显示星期的短日期格式为:yyyy-M-d (中文XP系统默认) 不显示的格式为:yyyy-MM-dd 如附件图所示 附件 default.gif (39.11 KiB) genggai.GIF (38.52 KiB) |
|
| 第14楼 willsort | 发表于 2006-04-06 03:39 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re lpclimber:
关于%date%和sShortDate的关系确实比较微妙。在sShortDate取系统默认值时,%date%也会取CMD默认值,只是这两个默认值之间不存在制约关系,但它们都同时受区域和语言选项的制约,不同的代码页(比如437与936),不同的区域代码(比如UK与USA),都会产生不同的影响。而当sShortDate被修改时,%date%则会受到同样的影响。 因此,要保持日期格式的统一性,就必须修改sShortDate,而%time%则无法找到对应有效的注册表值。 |
|
| 第15楼 yiping1973 | 发表于 2006-09-29 00:05 |
| 初级用户 发帖 34 积分 71 | |
|
其实 md %date%& 也可以的
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |