中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-18 14:32
47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 不知道是否有将系统8位日期赋值为变量,再有支持通配符?
可打印版本  1,240 / 7
第1楼 mws632 发表于 2006-11-26 04:25
初级用户 发帖 33 积分 88
不知道是否有将系统8位日期赋值为变量,再有支持通配符?
不知道是否有将系统8位日期赋值为变量,再有支持通配符?的小巧软件替换原文本中的指定行的旧日期字符串,这样的小巧实用的MS-DOS软件工具?

VARSET不可靠,Xset的日期变量只能六位mm/dd/yy,hexc不支持空格和通配符,change不支持通配符。

都是遍历替换,无指定行替换。
第2楼 lxmxn 发表于 2006-11-26 19:54
版主 发帖 4,938 积分 11,386

  楼主可否说得详细一点?最好是举个例子。。
第3楼 mws632 发表于 2006-11-27 05:15
初级用户 发帖 33 积分 88
比如:
比如:将“2006年11月26日”或“2006-11-26”赋值为变量 myvar
再将myvar替换一直文本中的末尾行的左起第16个字符开始的8位旧日期yyyy-mm-dd,这个旧日期事先可能不知道,故需通配符????-??-??来代替它识别字符串。

目前的varset、xset、hexc、change都不能满足。

[ Last edited by mws632 on 2006-11-26 at 04:17 PM ]
第4楼 redtek 发表于 2006-11-27 06:48
金牌会员 发帖 1,147 积分 2,902
“……末尾行的左起第16个字符开始的……” 也就是说这个文件中8位旧日期的前后左右全都有内容,而且还不是固定的,这本身就有了很大的难度。
(而且,就是Windows CMD Shell上操作都有一部分难度,更何况是纯DOS)

我不知道这个含有旧日期的文件是程序建立的还是如何建立的?


如果在这种不固定的情况下(为了代码操作上的上便),如果上面含有旧日期的文件可以由楼主控置其内容与格式的生成的话,
则代码二次处理这个含旧日期的文件则比较方便。

这可能也是那些工具操作起来麻烦的地方吧~:)
第5楼 echo 发表于 2006-11-28 04:50
初级用户 发帖 69 积分 148
没看明白什么意思,学习
第6楼 mws632 发表于 2006-11-28 18:49
初级用户 发帖 33 积分 88
其实很简单,也许我没表达清楚:
我在启动软盘中已有一文本文件A.TXT,可用read软件来读的,我想实现每次启动完成再读此篇A.TXT时,文尾的落款日期已自动变成当前日期。

此A.TXT的落款日期“yyyy-mm-dd”随系统日期改变,但落款日期的左右的字符串是固定不变的。

比如:

2006.11.28. 于四川省成都市

仅需改变此行中的日期即可。
第7楼 redtek 发表于 2006-11-28 23:32
金牌会员 发帖 1,147 积分 2,902
想了几种方法:

) C语言直接编程来直接写你那个要更改日期的 A.TXT 文件中的指定内容,以达到更新,但我菜鸟一个,不会编~:)



  不过,上面的运行于 MS-DOS 下的工具只是我凭空想像应该这样完成一件工作。

  然我没有见到过有人编写过这样的工具(或许存在这样的工具但没有被我们知道),所以上面的理想的方法无法完成:)


) 我也曾希望 MS-DOS 下有这样的工具:



  以上只是个人想法,但我不会编写无法实现~:)
 

) 另一种解决方法:

  MS-DOS 下直接使用反汇编工具 Debug 来精确定位你指定的文件 A.TXT 中的第多少个字节处开始(以覆盖方式)写入你指定的内容。
  间接达到(替换操作)的要求。被替换字符串应与替换字符串等长。
  
  实现上面想法理论上可以实现。

) 取系统当前日期:

  理论上 Debug 或是 生成临时文件的方式同样可以实现。
  然后将得到的 %MYDATE% 变量,再使用存有当前日期的 %MYDATE% 变量通过 Debug 来精确写 A.TXT 文件。


) 但是,上面方法走弯路了。

  简单的方法应该是通过一些技巧取到系统日期赋入 %MYDATE% 变量中,
  至于你要显示随时被更改过的那个 A.TXT 文件,可以如下操作:

  ECHO .......
  ECHO .................. 第 n 行了...............
  ECHO %MYDATE% 于四川省成都市 ................
  ECHO .......

  即,你那个要随时更动日期的文件内容直接写成批处理可以直接调用的形式 A.BAT
  这样只要一调用 CALL A.BAT 文件,自然就显示了内容又%MYDATE%可以实时替换。
第8楼 mws632 发表于 2006-12-02 19:48
初级用户 发帖 33 积分 88
思路都好
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023