中国DOS联盟论坛

中国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里没有可执行命令,运行这两个批处理的结果是提示“Current"既不是内部命令也不是外部命令等一大串提示。

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