Board logo

标题: [系统相关] 【已解决】请教批处理修改文件打开方式的方法。 [打印本页]

作者: 437153    时间: 2015-10-16 15:42     标题: 【已解决】请教批处理修改文件打开方式的方法。

本帖最后由 437153 于 2015-10-16 16:20 编辑

今天一个wps后缀的文件,打不开,原因是因为没有关联程序。于是想写一个
用批处理修改程序默认打开方式的脚本,却遇到了一些困难,想在此求教各位老大。

.wps和.doc都是用同一个软件编辑的,我的电脑用的是wps office个人版,
但是我查了一下.doc的关联程序,结果是这样的:
  1. C:\Windows\system32>assoc .doc
  2. .doc=Word.Document.8
  3. C:\Windows\system32>ftype word.document.8
  4. word.document.8="D:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE" /n /dde
复制代码
查出来的结果是用WINWORD.EXE打开.doc文件,不过实际情况下双击打开.doc文件用的是wps.exe

在群里请教了老大们,得到@cmd-/zhqsystem/zhq和@蜗牛  的回复:是用的注册表方式。于是查询.doc的结果是:
  1. C:\Windows\system32>reg query hkcr\.doc
  2. HKEY_CLASSES_ROOT\.doc
  3.     (默认)    REG_SZ    WPS.Doc.6
  4.     Content Type    REG_SZ    application/kswps
  5. HKEY_CLASSES_ROOT\.doc\PersistentHandler
  6. HKEY_CLASSES_ROOT\.doc\Word.Document.8
  7. HKEY_CLASSES_ROOT\.doc\WPS.Doc.6
复制代码
从这里看.doc的类型是WPS.Doc.6


于是我将.wps的文件类型也改为:
  1. assoc .wps=WPS.Docx.6
复制代码
目的是实现了,双击.wps文件和.doc文件一样都是用的wps.exe打开了。
但是ftype查不到WPS.Doc.6的关联程序:
  1. C:\Windows\system32>ftype wps.doc.6
  2. 没有找到文件类型 'wps.doc.6' 或与其相关的开放式命令。
复制代码
所以不明白如何用批处理实现修改文件默认打开程序?我查了一些帖子,都是说用assoc、ftype这两个
命令,但是从一开始查询.doc的结果来看,好像并不准确。

所在在此求教各位老大,正确姿势应该是怎样的?比如将.wps修改为用【E:\notepad++.exe】打开!先谢过各位了。
作者: 437153    时间: 2015-10-16 16:11

本帖最后由 437153 于 2015-10-16 16:19 编辑

Batcher老大的注册表方式试过了,没起作用:
http://www.bathome.net/redirect. ... =2124&pid=12200

我测试时用的命令是:
  1. reg add HKEY_CLASSES_ROOT\wpsfile\shell\open\command /ve /t REG_SZ /d "C:\Windows\System32\notepad.exe %%1" /f
复制代码
计划是测试用记事本打开.wps文件,不过没反应。然后发现原来还需要用assoc命令把.wps关联为上面命令中提到的【wpsfile】

于是我去注册表中找到.doc关联的类型:WPS.Doc.6,结果如下:
  1. C:\Windows\system32>reg query HKEY_CLASSES_ROOT\WPS.Docx.6\shell\open\command
  2. HKEY_CLASSES_ROOT\WPS.Docx.6\shell\open\command
  3.     (默认)    REG_SZ    "D:\Program files\WPS Office\9.1.0.4468\office6\wps.exe"
  4. "%1"
复制代码
和之前测试用的命令相对应,只是类型名不一样,测试的时候用的是wpsfile,而wps office 默认用的是WPS.Doc.6

自己折腾了一圈算是大概整明白了。。感谢论坛及各位老大!
作者: pcl_test    时间: 2015-10-16 20:02

本帖最后由 pcl_test 于 2015-10-16 20:03 编辑

注册表两处地方相互对应,影响着文件的打开方式
一是HKEY_CLASSES_ROOT\扩展名,默认值 对应命令assoc 扩展名的返回值(文件类型)
二是HKEY_CLASSES_ROOT\文件类型\shell\open\command 默认值 对应命令ftype 文件类型的返回值(关联的程序)

另一处亦然
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\扩展名
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\文件类型\shell\open\command




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2