中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-23 15:27
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,273 会员排行
DOS批处理 & 脚本技术(批处理室) » 控制台如何自动记录所有输入过的命令并输出到文件?
可打印版本  2,406 / 5
第1楼 tuliplanet 发表于 2005-12-02 17:42
新手上路 发帖 5 积分 18
控制台如何自动记录所有输入过的命令并输出到文件?
假如我打开一个控制台,无论我在里面作过什么操作,我都希望将操作记录跟踪下来并最终写入到一个文件中。举个例子来说,我在控制台作了如下操作:

C:\>set value=1

C:\>Change_Value.bat

C:\>echo 1
1

C:\>set value=2

C:\>echo 2
2

C:\>set value=3

C:\>%value%
'3' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

C:\>

那么最后在我退出控制台的时候我要将上面所有运行过的命令保存在一个文件中,比如说是Command.log。文件中记录的内容假如是:
set value=1
Change_Value.bat
echo 1
set value=2
echo 2
set value=3
%value%

请问有没有什么好的办法?我们现在的做法是在每条命令下面都写一个echo,然后将其上的命令重复一遍写在echo后面。这种办法很笨,而且也容易出错。各位大侠给支支招!
第2楼 无奈何 发表于 2005-12-02 22:48
荣誉版主 发帖 356 积分 1,338
按 F7 看看,然后将这些命令复制出来。
第3楼 tuliplanet 发表于 2005-12-05 09:34
新手上路 发帖 5 积分 18
这样还是达不到我的目的噢!我是要做一个bat文件,然后想在bat文件执行完了以后输出所有执行过的命令,可我把doskey /h写在bat文件的最后一行却什么也没有输出,好像是bat文件里的命令都记录不下来,苦恼啊!大家还有什么办法么?
第4楼 willsort 发表于 2005-12-05 13:48
元老会员 发帖 1,512 积分 4,432
Re tuliplanet:

很有趣的一个题目,根据你的要求我写了下面这段 BatDump 代码,它只能 Dump 一些简单的批处理,遇到某些复杂的批处理时,会有许多意想不到的问题,毕竟它不是程序的正常执行流程。另外,如果待 Dump 的批处理中含有 pause 等需要接受键盘输入的语句,Dump 过程中需要“摸黑”进行选择确定(CMD中的情况比较特殊)。

第5楼 tuliplanet 发表于 2005-12-05 16:45
新手上路 发帖 5 积分 18
嗯~~!大侠的这个意思是说把bat文件的命令全都拷贝了一遍到一个文件,而我们要得到的是真正这个bat文件中在运行时都运行了那些命令,不如运行的时候有一些if else语句,和goto语句,有些分支是没走的,我们要记录bat运行的状态,而不是那里面有什么。所以,大侠们看看还有没有别的高招噢?
第6楼 willsort 发表于 2005-12-05 18:30
元老会员 发帖 1,512 积分 4,432
Re tuliplanet:

不知你是如何测试我的代码的?它的作用正是获取一个批处理的运行语句序列,因此,用它截取出来的文本已不再算是一个严格意义上的批处理文件了。比如,这个文本中只会有 goto label ,而不会有 :label 这个标签了。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023