最近,笔者遇到了一个十分棘手的问题,就是进入Windows 2000后所有扩展名为EXE的文件都不能运行了。现将发现和解决这一问题的过程及体会写成下文,希望在今后碰到类似问题时会对大家有所帮助。 故障现象 一日,开机后进入Windows 2000,突然弹出了一个对话框,标题为“C:\Program Files\Microsoft office\OSA9.EXE”, 提示信息为“该文件没有关联程序执行该操作。请在控制面板的文件夹选项中创建关联程序”。我十分吃惊,心想:会不会所有扩展名为EXE的文件都不能运行?果然,双击桌面上所有与EXE文件链接的快捷方式图标都不能打开相应的程序!这下我可急出了一身冷汗。 故障分析 一定是某个软件甚至可能是病毒把扩展名为EXE的文件关联删除或修改了,因此按照前面对话框的提示从控制面板中执行“文件夹选项”命令,选择“文件类型”标签,在“已注册的文件类型”列表中找不到扩展名EXE和它的文件关联。试着按[新建]按钮,在“文件扩展名”后输入“.exe”,按[高级]按钮,系统自动将其文件类型定义为“应用程序”,按[确定]按钮后在“已注册的文件类型”列表中出现了扩展名“EXE”,选择它后按[更改]按钮,系统要求选择要使用的程序,可是到底要选择什么应用程序来打开EXE文件?看来这个方法无效,只好按[取消]按钮返回“文件夹选项”对话框。由于以前我从没听说要为扩展名为“.exe”的文件建立文件关联,所以在“已注册的文件类型”列表中选择“EXE应用程序”,并按[删除]按钮将它删除。由于所有EXE文件都不能执行,所以也无法用注册表编辑器(因为我只能运行Regedit.exe或Regedit32.exe来打开注册表编辑器)来修改注册表,看来只好重新启动计算机了。在出现“正在启动Windows…”时按[F8]键,出现“Windows 2000高级选项菜单”,选其中的“最后一次正确的配置”,进入Windows 2000时仍然报错。只好再次重新启动,这次选“安全模式”,虽然没有报错,但仍不能运行EXE文件。再试试“带命令行提示的安全模式”选项,启动成功后在命令提示符窗口的命令行输入:help | more(“|”是管道符号,在键盘上位于Backspace键左边),在系统显示的信息第一行我看到了如下信息“ASSOC Displays or modifies file extension associations”,大致意思是“ASSOC显示或修改文件扩展名关联”。心中顿时一喜,别急,按任意键继续查看,又看到了如下信息“FTYPE Displays or modifies file types used in file extension associations.”,大意是“FTYPE显示或修改用在文件扩展名关联中的文件类型”,原来在命令提示符窗口还隐藏着这两个特殊命令,可以用来设置文件扩展名关联。于是,在命令行分别输入“help assoc”和“help ftype”两个命令获取了它们的使用方法(限于篇幅,不再列出),接着通过下面的设置,终于解决了EXE文件不能运行的故障。 故障解决 先在命令行输入:assoc .exe来显示EXE文件关联,系统显示“没有为扩展名.exe找到文件关联”,难怪EXE文件都不能执行。接着输入:ftype | more来分屏显示系统中所有的文件类型,其中有一行显示为“exefile="%1" %*”,难道只要将EXE文件与“exefile”关联,故障就会解决?于是在命令行输入:assoc .exe=exefile(assoc与.exe之间有一空格),屏幕显示“.exe=exefile”。现在关闭命令提示符窗口,按[Ctrl+Alt+Del]组合键调出“Windows安全”窗口,按[关机]按钮后选择“重新启动”选项,按正常模式启动Windows 2000后,所有的EXE文件都能正常运行了。 几点体会 事后,笔者重新在控制面板中执行文件夹选项命令,选择“文件类型”标签,发现在“已注册的文件类型”列表中没有EXE,也没有BAT和COM等文件类型,说明用文件夹选项命令无法创建这些类型的文件关联,我们只能在命令提示符窗口中用ASSOC和FTYPE两个命令来设置。