Windows 与 ruby 的文件关联

Windows file association with ruby

我正在尝试通过 ruby 更改 windows 文件关联。 Assoc 部分工作但 ftype 不工作为什么它不工作?

    pth = Dir.pwd
    pth << "/pfReader.exe"

    pth.gsub "/","\"


    system("assoc .pf=pfReader")
    puts("assoc command is done \n")
    system("ftype pfReader = '#{pth}' '%1'")
    puts("ftype command is done \n")

调试此类问题的一个很好的提示是将 system 替换为 puts。如果你这样做,你会意识到问题出在这一行:

pth.gsub "/","\"

虽然您可能想要这个:

pth.gsub! "/","\"

此外,我不确定 Windows cmd.exe 是否喜欢单引号,因此您可能需要修复 ftype 调用以使用正确的双引号:

system("ftype pfReader=\"#{pth}\" \"%1\"")