![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-18 12:04 |
共 47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行 |
| DOS疑难解答 & 问题讨论 (解答室) » 如何用命令将文件夹命名为当前日期+文件夹名呢 |
| 可打印版本 3,536 / 15 |
| 第1楼 lanlinlan | 发表于 2006-11-19 00:28 |
| 初级用户 发帖 29 积分 76 | |
|
如何用命令将文件夹命名为当前日期+文件夹名呢 如题! 假如有此文件夹 D:\a 如何让他调用系统自己的时间为自己的名字 大概的意思是命名后为 D:\20061116a
|
|
| 第2楼 fastslz | 发表于 2006-11-19 01:24 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
http://www.cn-dos.net/forum/viewthread.php?tid=24639&fpage=1&highlight=%E5%BD%93%E5%89%8D%E6%97%A5%E6%9C%9F |
|
| 第3楼 lanlinlan | 发表于 2006-11-19 01:36 |
| 初级用户 发帖 29 积分 76 | |
|
真的非常的感谢 现在好象可以了 以下是代码:
@echo off for /f "tokens=1-4 delims=:-" %%i in ("%date:~0,10%%time%") do set DT=%%i%%j%%k%%l set DT=%DT: =0% echo %DT% ren a %DT%a pause |
|
| 第4楼 lanlinlan | 发表于 2006-11-19 02:21 |
| 初级用户 发帖 29 积分 76 | |
|
@echo off
for /f "tokens=1-4 delims=:-" %%i in ("%date:~0,10%%time%") do set DT=%%i%%j%%k%%l set DT=%DT: =0% echo %DT% ren a %DT%a pause 好象又有新的问题哦 上面的代码可以在XP下测试通过 但是2000测试会出现 星期 而且日期也不对 NT根本就没有反映 请问有谁知道是什么原因么 |
|
| 第5楼 lanlinlan | 发表于 2006-11-19 05:36 |
| 初级用户 发帖 29 积分 76 | |
|
有没有人知道为什么啊?
|
|
| 第6楼 Climbing | 发表于 2006-11-19 06:19 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
这是因为Windows 2000的日期格式与XP设置不同,你自己在CMD下:
echo %date% 就可以看出区别来了。 要使它们相同,可能需要修改有关的注册表设置,注册表的具体位置偶忘了。 而NT 4.0可能压根就不支持%date%这种环境变量,这是微软系统的兼容性问题,恐怕要解决只能通过第三方软件来实现了。 |
|
| 第7楼 electronixtar | 发表于 2006-11-19 06:47 |
| 铂金会员 发帖 2,672 积分 7,493 | |
可以根据 %cmdextversion% 来判断吗? |
|
| 第8楼 redtek | 发表于 2006-11-19 07:23 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
我用了一个好玩的办法~:)
不过,下面是原型,因为当我做完了才发现原来取到的日期是6位:061119目录名,而不是:20061119目录名。 不过,要实现 “20061119目录名” 也不是很难,还是上面取文件名日期的原理,但可能要升成临时文件:( 根据对比win2003与win2000的 %date% 发现它们的关系是“日期 星期几”,而win2000是“星期几 日期”,要是xp还不知道要出现什么,哈哈。 但是,不管它们怎么变,系统DIR显示文件名的时候 chcp 936 所给出的日期应该不变: win2003与win2000对比日期,它们格式是一样的~:) 所以,取文件名的日期就行了,或新建一个临时文件,这文件DIR读还是别的方法%~方法取(但这方法只能是6位日期), 所以,DIR方法取较为通用~:) 下面代码仅实现6位日期加上楼主给出的原目录名: win2003中文版与win2000高级服务器版默认安装的系统里测试成功~:) 使用方法: 上面代码名字.BAT 要更改的目录名,带空格的目录名要加引号括起来 但之所以称之为好玩,是因为不想升成临时文件,但不生成临时文件就得不到当前日期。 而我又不喜欢花时间动脑子对比不同版本系统(太麻烦,麻烦的没乐趣了,所以不做:) 那么就让这个批处理自己写自己吧~:) 反正每运行一次才自动增多一个字节,哈哈…… 它自己写了自己一个字节追加到结尾,所以自己的文件时间当然变成了最新的, 所以就取到了,上面是用%~方式取的,如果DIR取也一样,那样就是8位时间啦~:) 上面例子一半实用,自己写自己,每运行一次多一个字节,哈哈……不严格,所以权当玩笑~:) [ Last edited by redtek on 2006-11-18 at 06:28 PM ] |
|
| 第9楼 redtek | 发表于 2006-11-19 07:31 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
等等……有点错误~:)
在win2003下丢了一部分日期,不好意思,当我上面贴子没发~:) 吃完饭我接着改:) --- 吃完饭了~:) 原来Win2000中批处理 %~t0 参数取得文件时间为: 06-11-19 19:35 而Win2003中批处理 %~t0 参数取得文件时间为: 2006-11-19 19:37 差了两位:) 看来win2003与win2000的文件日期的区别就是 "2006" 与 "06", 它们(取得日期的字符串)的第5位如果是 "-" 字符,就说明是 win2003(或其它,但不是win2000), 如果第5位不含有 "-" 这个字符,那么就在取得日期前(左边)补"20", 反正这个批处理也不可能用从2006年用到2100年( 活不到那一年,真是突然无限伤感啊~~~有同感的举手~:) 所以,前面补20就可以完成win2000系统的日期问题~:) (不过,这不是严谨的方法,纯粹是一个非正经的玩笑贴子,不好:) [ Last edited by redtek on 2006-11-18 at 08:53 PM ] |
|
| 第10楼 redtek | 发表于 2006-11-19 10:43 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
可以啦~:)
原我在9楼、8楼发的代码贴子是有问题的版本,无效。 以下面代码为准:(但,还是基本原型,只是一种取日期的好玩的方法而已,还是不太实用,只是基础满足楼主2003、2000里面的应用) 将指定目录更改为: 当前日期+原目录名 的形式~:) 测试环境: Windows Server 2003 中文企业版 Windows 2000 中文高级服务器版 以上环境可以正常运行~:) 因为没装 WindowsXP版,所以没有机会测试,请拥有XP版本的朋友测试一下~:) [ Last edited by redtek on 2006-11-19 at 10:04 AM ] 附件 rr.rar (312 bytes) |
|
| 第11楼 Michale | 发表于 2006-11-21 08:44 |
| 初级用户 发帖 27 积分 52 来自 ☆逍遥宫☆ | |
|
我试了好几遍 好象还是有问题的 我这个是xp的 怎么玩上面的代码都玩不来~~一点效果都没有~~`看来还是2000的比较好一点~~~不知道微软怎么搞的~~
|
|
| 第12楼 redtek | 发表于 2006-11-21 09:23 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
我现在在XP环境下测试了一遍~:)
测试系统版本~:) 建立了一个做被实验对象,一个名为“a b c”带空格的目录~:) 然后执行 rr.bat (就是楼上附件提供的将指定目录名更改为 当前日期+原目录名 的形式) 你看,在XP环境下这个"a b c"的目录名已被自己更改为以当前日期+原目录名的形式: “20061120a b c” 我测试在XP环境下成功~:) 同时也感谢Lxmxn兄在他的XP环境上帮我测试了echo %date%的日期格式等内容:) 上面的测试是在命令行上直接键入命令来运行 rr.bat 这个批处理的,而不是直接鼠标双击的方式运行:) 你是使用什么方式测试的?显示的是什么?你的XP的具体版是多少? 如果有问题我再修改,拜托~:) [ Last edited by redtek on 2006-11-20 at 08:39 PM ] |
|
| 第13楼 electronixtar | 发表于 2006-11-21 11:46 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
redtek辛苦了,偶给你加分!
|
|
| 第14楼 redtek | 发表于 2006-11-21 12:03 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
啊~~看到加了这么高的分乐晕了过去~:)
n分钟后……醒来时又接着乐~:D 多谢electronixtar兄鼓励~:) |
|
| 第15楼 lxmxn | 发表于 2006-11-23 14:06 |
| 版主 发帖 4,938 积分 11,386 | |
|
我也来给 Redtek 兄加分,热情、耐心令小弟佩服~~ |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |