想了几种方法:
) C语言直接编程来直接写你那个要更改日期的 A.TXT 文件中的指定内容,以达到更新,但我菜鸟一个,不会编~:)
例如: SETDATA.EXE 21 16 2006-11-28 A.TXT
SETDATA.EXE 21 16 %MYDATE% A.TXT
以覆盖方式将(x,y座标)新的日期内容写入 A.TXT 文件的(第21行的偏移量从0起的第16个开始的字符处)
不过,上面的运行于 MS-DOS 下的工具只是我凭空想像应该这样完成一件工作。
然我没有见到过有人编写过这样的工具(或许存在这样的工具但没有被我们知道),所以上面的理想的方法无法完成:)
) 我也曾希望 MS-DOS 下有这样的工具:
例如: GETDATA.EXE 21 16 10 %VAR% A.TXT
GETDATA.EXE 21 16 %getNum% %VAR% A.TXT
GETDATA.EXE 21 16 10+ %VAR% A.TXT
以只读方式读取 A.TXT 中的指定位置:(x,y-第21行的从偏移量0起的第16个字符处)连读10个字符。
或,取多少个字符由变量 %getNum% 指定。
或,取多少个字符: 10+ 代表右取到行尾
或,取多少个字符: -10 代表从此位置向左取到行首
将取出的字符串赋值给变量 %VAR%,将来就可以 echo %var% 等方式调用。
以上只是个人想法,但我不会编写无法实现~:)
) 另一种解决方法:
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%可以实时替换。