ITEEDU

Setver

设置 MS-DOS 子系统向程序报告的 MS-DOS 版本号。如果在没有参数的情况下使用,setver 命令将显示当前的版本表。

语法

setver [Drive:Path] [FileName n.nn]
setver [Drive:Path] [FileName [/delete [/quiet]]?

要显示当前版本表,请使用以下语法:

setver [Drive:Path]

参数

[Drive:Path]

指定 Setver.exe 文件的位置。

FileName

指定要添加到版本表中的程序文件(.exe 或 .com)的名称。不能使用通配符(* 或 ?)。

n.nn

指定 MS-DOS 子系统向指定程序文件报告的 MS-DOS 版本(例如 3.3 或 4.01)。

/delete

删除指定程序文件的版本表项。还可以同时使用 /d。

/quiet

从版本表中删除条目时隐藏经常显示的消息。

/?

在命令提示符显示帮助。

注释

使用版本表

许多设计为运行在 MS-DOS 中的程序可以在 Windows XP 中正常运行。但是在某些情况下,版本表中没有包括的程序可能无法正常运行。尽管在 MS-DOS 子系统中运行,但是版本表向该程序表明它正在设计使用的 MS-DOS 版本中运行。通过将 MS-DOS 5.0 解释为早期的版本,该程序可能会正常运行;不过,如果程序与 Windows XP 不兼容,那么使用 setver 也不能解决问题。

将版本表载入内存

使用 setver 命令之前,必须在 Config.nt 文件中插入 device 命令,将版本表载入内存。

更新版本表后重新启动

通过添加或删除条目更新版本表后,必须启动新的命令提示符会话,以便重新读取版本表。

更新现存的条目

如果指定的文件名在版本表中已经存在,新条目将替换现存的条目。

了解 setver 退代码

若要处理 setver 返回的退代码,请在批处理程序的 if 命令行中使用 errorlevel 参数。有关使用"if"处理退代码的批处理程序的范例,请参阅""。下表列出每一个退代码和描述。

  • 0: Setver 成功完成了任务。
  • 1: 用户指定了无效的命令行选项。
  • 2: 用户指定了无效的文件名。
  • 3: 系统内存不足以执行该命令。
  • 4: 用户指定了无效的版本号格式。
  • 5: Setver 在版本表中找不到指定的条目。
  • 6: Setver 找不到 Setver.exe 文件。
  • 7: 用户指定了无效的驱动器。
  • 8: 用户指定的命令行选项过多。
  • 9: Setver 检测到缺少的命令行选项。
  • 10: Setver 在读取 Setver.exe 文件时检测到错误。
  • 11: Setver.exe 文件已损坏。
  • 12: 指定的 Setver.exe 文件不支持版本表。
  • 13: 版本信息表中没有足够的空间供新条目使用。
  • 14: Setver 在写入 Setver.exe 文件时检测到错误。

范例

若要运行 Myprog.exe(使用 MS-DOS 3.30 版运行的文件),请键入下面的命令在版本表中创建条目,以启用 Myprog.exe 来解释 MS-DOS 3.30 版子系统:

 setver myprog.exe 3.30 

要从版本表中删除 Myprog.exe 条目(不会影响 Myprog.exe 文件),请键入:

 setver myprog.exe /delete 

要列出驱动器 C 上版本表的内容,请键入:

 setver c: