简体中文版的chkntfs的帮助信息翻译得真够烂
(yanlb2000, 2005.03.06)
接着上次那个话题:“chkdsk的一个令人困惑的bug”(http://www.blogcn.com/User13/yanlb2000/blog/6626493.html)
我在经常使用chkdsk的时候,也顺便使用了几次chkntfs。为了详细了解这个工具的使用方法,当然要看看其帮助信息,使用chkntfs /?,输出是这样的:
E:>chkntfs /?
在启动时显示或修改磁盘检查。
CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]rnCHKNTFS /X volume [...]
CHKNTFS /C volume [...]
volume: 指定驱动器(后面跟一个冒号)、装入点
或卷名。
/D 将计算机恢复成默认状态, 启动时检查所有驱动器,
并对有问题的驱动器执行 chkdsk 命令。
/T:time 将 AUTOCHK 初始递减计数时间改成指定的
时间量,单位为秒数。如果没有指定
时间,则显示当前设置。
/X 排除启动时不作检查的驱动器。上次执行此命令
排除的驱动器此时无效。
/C 安排启动时检查驱动器,如果驱动器有问题,运行 chkdsk。
如果没有指定命令行开关,CHKNTFS 会显示每一驱动器有问题的位的状态。
我用的是简体中文版Windows XP Pro SP2。真是没想到,大名鼎鼎的Windows,这么简短的一则帮助信息,就有两个明显的问题。
1, 第一行,工具自我介绍,“在启动时显示或修改磁盘检查。”这是明显的错误,这个工具根本不是这样的功能呀。大家知道,有些情况下,系统启动的时候会检查某几个磁盘分区。引起磁盘检查的情况有好几种,比如非正常关机,比如分区状态被标记为“脏”的(dirty bit),比如运行chkdsk /F的时候无法锁定分区,等等。chkntfs就是用来检查(显示)某个分区在下次启动的时候是否需要检查。当然,也可以用这个工具来直接设置系统启动时对几个或全部分区检查。
所以,正确的说法应该是,“显示或修改(系统)启动时的磁盘检查(情况)”。
2, 看这个:“CHKNTFS /T[:time]rnCHKNTFS /X volume [...]”
这算什么意思?是不是看着有点晕?
还好我也算懂编程的,知道rn其实应该代表回车和换行,是这两个功能的“可见”写法。
LF, 即Line Feed,在打字机、打印机中代表换行这个动作。ASCII码10, 0x0A, 在C等等编程语言中也写为n。
CR,即Carriage Return,在打字机、打印机中代表回车这个动作,将字车或打印头回到行的起始位置。ASCII码13, 0x0D,在C等编程语言中也写为r。
rn这两个字符组合在一起发给打印机、打字机或命令行环境,就是完成了一个回车换行的动作。
现在明白了吧?不知这写这个帮助信息的人怎么回事,能将那个回车换行的动作“还原”成“rn”,真是神奇呀。其实,看着有点晕的“CHKNTFS /T[:time]rnCHKNTFS /X volume [...]”应该分成两行来写:
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
这样才正常。对照帮助信息中的后续解释,这样也才好理解。
我想微软的帮助文档不会这么逊吧?我很好奇,其英文版的chkntfs是不是也是这样的?
于是,我在桌面上创建了一个新的指向cmd.exe的快捷方式,将其代码页改为“437 (OEM 美国)”,然后运行。这样,这个命令行环境就是英文的,chkntfs也将以英文界面出现。chkntfs /?的英文状态输出是这样的:
E:>chkntfs /?
Displays or modifies the checking of disk at boot time.
CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]
volume Specifies the drive letter (followed by a colon),
mount point, or volume name.
/D Restores the machine to the default behavior; all drives are
checked at boot time and chkdsk is run on those that are
dirty.
/T:time Changes the AUTOCHK initiation countdown time to the
specified amount of time in seconds. If time is not
specified, displays the current setting.
/X Excludes a drive from the default boot-time check. Excluded
drives are not accumulated between command invocations.
/C Schedules a drive to be checked at boot time; chkdsk will run
if the drive is dirty.
If no switches are specified, CHKNTFS will display if the specified drive is
dirty or scheduled to be checked on next reboot.
原来如此!现在看明白了吧?英文“原版”的帮助信息,很准确,我上面提到的两个问题都不存在。
就这么一个简单的工具,一段简短的帮助信息,从英文到中文,就讹误这么多。
这说明了什么?
我无话可说了。