![PowerShell 脚本用于关联 Windows 8 中的应用程序(可能使用 ftype/assoc)](https://linux22.com/image/1313268/PowerShell%20%E8%84%9A%E6%9C%AC%E7%94%A8%E4%BA%8E%E5%85%B3%E8%81%94%20Windows%208%20%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%88%E5%8F%AF%E8%83%BD%E4%BD%BF%E7%94%A8%20ftype%2Fassoc%EF%BC%89.png)
在 Windows XP / Vista / 7 中,使用 ftype 和 assoc 可以很容易地批量重新关联默认项目,如下所示。这在系统设置中节省了大量时间,可确保所有关联都符合用户要求,否则在新安装中逐个重新关联每个扩展会非常耗时。
在 Windows 8 中,现在这些似乎都不起作用了。例如,.pdf 文件现在默认与 Microsoft 的 Metro 应用“Reader”相关联。在新的 Windows 8 安装中,手动将许多(10 种或数百种文件类型)重新关联到标准桌面应用(例如,.pdf 应与 Adobe Reader 而不是 Microsoft Reader 相关联)将是一项繁琐的工作。下面是我在 Windows 7 中使用 cmd 脚本执行此操作的示例,但显然随着 PowerShell 的进步,在 Windows 8 中这样做可能更合适(另外,我怀疑可能需要访问 .NET 才能更改这些 Metro 关联,而 cmd 不是完成这项工作的好工具)。
我并不认为 Metro 应用不好(在平板电脑上它们是理想的选择),问题在于与桌面版相比,它们的功能非常有限,因此如果能够快速(脚本化)将所有内容重新关联到桌面应用(或者如果我在平板电脑上工作并希望在这种用例中将所有内容关联到 Metro 应用,也可以反过来做)那就好了。
:: File assoc and ftype: RAR, ZIP, NFO, DIZ, CBR, CBZ, DJVU, etc
:: ####################
:: Note: at commandline, would type ftype txtNFO="%SystemRoot%\system32\NOTEPAD.EXE" "%1"
:: but in batch script have to double up the % characters, ftype txtNFO="%SystemRoot%\system32\NOTEPAD.EXE" "%%1"
:: plus note the " characters, have to be careful about these
if exist "C:\Program Files (x86)\7-Zip\7zFM.exe" ftype 7zFM="C:\Program Files (x86)\7-Zip\7zFM.exe" "%%1"
if exist "C:\Program Files\7-Zip\7zFM.exe" ftype 7zFM="C:\Program Files\7-Zip\7zFM.exe" "%%1"ftype txtNFO="%%SystemRoot%%\system32\NOTEPAD.EXE" "%%1"
ftype txtDIZ="%%SystemRoot%%\system32\NOTEPAD.EXE" "%%1"
ftype QuickPAR="D:\Toolkit\QuickPAR\QuickPAR.exe" "%%1"
ftype CDisplay="D:\Toolkit\CDisplay\CDisplay.exe" "%%1"
if exist "D:\Toolkit\Microsoft Reader\msreader.exe" ftype MSReader="D:\Toolkit\Microsoft Reader\msreader.exe" "%%1"
if exist "D:\Toolkit\Mobipocket Reader\reader.exe" ftype MobiPocket="D:\Toolkit\Mobipocket Reader\reader.exe" "%%1"
if exist "D:\Toolkit\Stanza\Stanza.exe" ftype Stanza="D:\Toolkit\Stanza\Stanza.exe" "%%1"
assoc .lit=MSReader
assoc .mobi=MobiPocket
assoc .prc=MobiPocket
assoc .azw=MobiPocket
assoc .epub=Stanza
assoc .par=QuickPAR
assoc .par2=QuickPAR
assoc .sfv=QuickPAR
assoc .md5=QuickPAR
assoc .7z=7zFM
assoc .rar=7zFM
assoc .zip=7zFM