我想写一个batch file,确保当用户点击一个.JNLP文件,它打开使用javaws.exe(位于程序文件/ java / …你知道演练)
我写了下面的batch file:
ASSOC .jnlp=JNLPFILE IF EXIST "%ProgramFiles% (x86)" (GOTO x86) ELSE (GOTO x64) :x86 FTYPE JNLPFILE="%ProgramFiles% (x86)Javajre7binjavaws.exe" "%1" goto:eof :x64 FTYPE JNLPFILE="%ProgramFiles%Javajre7binjavaws.exe" "%1"
我在Windows 7 64位testing这一切。
这…不起作用。 那么,这不完全准确。 它正确地修改registry,并且将.jnlp添加到要运行的推荐程序的Windows列表中。 它确实是应该的。
echo从文本文件读取时不会评估variables
如何使用当前名称提取的子string重命名Windows文件
以相反的顺序在目录中循环文件
hibernate在Win7 with.bat文件。 如何inputy为冬眠,n为非冬眠?
但是这并没有解决我的问题。 看,为了testing,我用记事本去了默认程序和关联的.jnlp文件。 当我尝试打开.Jnlp文件时,即使在我的代码运行后,IT也会尝试在记事本中打开。
如果我打开一个.jnlp,它使我可以select打开记事本或javaws.exe如果我已经与ASSOC运行我的代码,它添加了第二个选项javaws.exe
我试过ASSOC .jnlp =“”和FTYPE JNLPFILE =“”试图清除记事本,但没有运气。
如何使我的batch file吹掉之前的设置并在机器上占据主导地位?
编辑:使用下面的答案,我已经添加一个命令到我的batch file的开始,这应该照顾我的问题,使事情正常工作。
REG DELETE HKEY_CURRENT_USERSoftwareMicrosoftwindowsCurrentVersionExplorerFileExts.jnlp /f
batch file是不必要的加倍字符字符
尝试编写batch file以pipe理员身份打开程序
如何比较批处理脚本中的Windows版本?
我的CMD批处理脚本不起作用(此时0意外。)
从命令行而不是Windows资源pipe理器命名networking驱动器
HKEY_CURRENT_USERSoftwareMicrosoftwindowsCurrentVersionExplorerFileExts
HKCU 软件微软的Windows CurrentVersion Explorer中 FileExts 。JNLP OpenWithList
HKCU 软件微软的Windows CurrentVersion Explorer中 FileExts 的.jnlp OpenWithProgIDs
并在中设置所需的UserChoice Progid
HKCU 软件微软的Windows CurrentVersion Explorer中 FileExts 的.jnlp UserChoice
另外请注意,OpenWithList和OpenWithProgids可以设置为多个级别。
HKCU 软件微软的Windows CurrentVersion Explorer中 FileExts 名为.xyz OpenWithList
HKCU 软件微软的Windows CurrentVersion Explorer中 FileExts 名为.xyz OpenWithProgIDs
HKCR 名为.xyz OpenWithList
HKCR 名为.xyz OpenWithProgIDs