![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 14:08 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 不用LMOD,纯DOS下批处理可以建立日期目录吗? |
| 可打印版本 5,298 / 12 |
| 第1楼 stonelei | 发表于 2004-08-28 00:00 |
| 初级用户 发帖 14 积分 172 | |
|
不用LMOD,纯DOS下批处理可以建立日期目录吗? 前几天Climbing朋友帮编了一个备份升级的批处理,但调用了几个实用小工具,
现在很想用一个批处理而不调用来完成.进行升级,不知是否算是异想天开. 首要问题就是如何建立以当前日期命名的目录名,例如2004-09-01日就自动建立0901的目录. 我搜索了论坛的所有贴子,但不是不能建立一个完整的目录,就是要调用LMOD, 因为DOS下不能超过8位数的文件名,而DOS622的日期格式是 09-01-2004 这样的. 如果按前面的说话,不用调用,批处理可以建立这样的目录吗? 0901 是否批处理真的没办法实现这样的功能?因为我见到论坛关于日期目录的讨论也不少,就是 没有真正用批处理完成一个完美的日期录建立的. 谢谢高手提出解决方案. |
|
| 第2楼 Climbing | 发表于 2004-08-28 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
不使用第三方工具,纯粹使用DOS 6.22的内部命令,这个基本上比较难。至少我不知道如何去做,如果willsort也没有好办法,估计就真的不太可能了。
|
|
| 第3楼 stonelei | 发表于 2004-08-28 00:00 |
| 初级用户 发帖 14 积分 172 | |
|
我现在有一个想法,就是把当前日期保存到临时文件中:echo %date%>a.txt然后再取a.txt 的某部分字符(日期)成为变量,再根据变量建立目录.再删除临时文件 a.txt这样的构思不知可行否?
|
|
| 第4楼 stonelei | 发表于 2004-08-28 00:00 |
| 初级用户 发帖 14 积分 172 | |
|
在论坛上http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=12&ID=4487&page=72
找到了个QBASIC的,但不用BAS保存,不知可不可以直接编译成EXE文件执行,即 我想要的结果是只用一个文件解决问题. 10 F0$="1.txt" :rem --------------------- 你要备份的文件名 20 P0$="C:\abc\":rem -------------------- 你原来的目录名 30 P1$="C:\abc\":rem -------------------- 你要放备份文件的目录名(这里是相同) 40 M$=MID$(DATE$,1,2):rem --------------- 取月 50 D$=MID$(DATE$,4,2):rem --------------- 取日 60 Y$=MID$(DATE$,7,4):rem --------------- 取年 70 S$=Y$+M$+D$:rem ---------------------- 按年、月、日生成备份文件 80 F1$=S$+".txt":rem -------------------- 给备份文件名加上扩展名(这里是.txt) 90 C$="copy "+P0$+F0$+" "+P1$+F1$:rem --- 生成DOS命令串 100 SHELL C$:rem ------------------------ 用SHELL来执行DOS命令串 110 END 用Sav-DAY.BAS文件名存盘 用的时候将下列命令加到批处里就可以了! BASIC.EXE Sav-DAY.BAS |
|
| 第5楼 autoit | 发表于 2004-08-29 00:00 |
| 系统支持 发帖 339 积分 904 来自 厦门 | |
|
for /f好象可以分离日期的...
|
|
| 第6楼 stonelei | 发表于 2004-08-30 00:00 |
| 初级用户 发帖 14 积分 172 | |
|
还有朋友有更好的解决方法吗?难道在DOS622下靠BAT真的不能生日一个完美的日期目录?
|
|
| 第7楼 stonelei | 发表于 2004-08-30 00:00 |
| 初级用户 发帖 14 积分 172 | |
|
查过以前 WILLSOFT的贴子,其中有一例很相似,但我看不太懂.请哪位高手帮忙解析一下好吗?@echo off
echo set time=%%3>current.bat echo.|time>setclock.bat call setclock.bat echo set week=%%3>current.bat echo set date=%%4>>current.bat echo.|date>setclock.bat call setclock.bat del current.bat del setclock.bat |
|
| 第8楼 willsort | 发表于 2004-09-18 00:00 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
To stonelei :
这个程序基本可以满足你的要求,在win98Command和DOS7下测试可以生成09-15-2004的目录名,估计在DOS6下应该生成类似09-15-04的名字。 原程序是一个比较通用的命令行下获取时间变量的程序,我当时是在DOS6.22下编写并测试通过的。但它不适用于中文化的DOS系统或者命令行环境,NT系列的CMD.EXE也因此无法使用,在其命令行环境中缺省设置了时间变量,所以也用不着此程序。 至于解析,但愿以下内容对你有所帮助。 另外,请注意,我的ID是willsort,而非WILLSOFT,我的职业与软件销售毫无关联。 [ Last edited by willsort on 2005-7-16 at 22:14 ] |
|
| 第9楼 Climbing | 发表于 2004-09-19 00:00 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
呵呵,这个方法果然是妙极。学海无涯啊。
|
|
| 第10楼 kavenlee72 | 发表于 2005-10-15 22:54 |
| 中级用户 发帖 87 积分 369 | |
|
但今天刚试过,setclock.bat和current.bat里没有可执行命令,运行这两个批处理的结果是提示“Current"既不是内部命令也不是外部命令等一大串提示。
|
|
| 第11楼 willsort | 发表于 2005-10-15 23:13 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re kavenlee72:
请注意程序的适用和测试环境! |
|
| 第12楼 zh0159 | 发表于 2005-10-16 00:33 |
| 新手上路 发帖 3 积分 14 | |
Originally posted by kavenlee72 at 2005-10-15 22:54: setclock.bat和current.bat这两个文件只是在这个批处理中用来判断当前日期的而生成的临时文件,判断完毕后由后面的两行: del current.bat del setclock.bat 直接删除了,所以你再执行这两个批处理的结果就提示既不是内部命令也不是外部命令(文件没有了)。 |
|
| 第13楼 wubozh | 发表于 2006-03-08 23:12 |
| 初级用户 发帖 18 积分 40 | |
|
前段时间刚才要用到这个,学着做了一个,看能不能用? if not exist %date:~4% md %date:~4%
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |