有时候经常要打开一个文件所在的文件夹,去寻找其他的文件,比如要打开vc的工具目录运行没有列在开始菜单中的程序,或是修改一个程序的配置文件。对于有快捷方式的,一般的做法是在快捷方式上右击,打开快捷方式的属性,通过find target来进入所在的文件夹。下面列出的vb script会直接打开快捷方式的目标文件所在的文件夹。通过修改注册表,可以在右键菜单上添加Open Folder项来调用这个脚本。
/************************open_shrtct_parent_folder.vbs******************************/
set args = WScript.Arguments
linkname = args(0)
set wshshell = CreateObject("WScript.Shell")
set scut = wshshell.CreateShortcut(linkname)
set fs = CreateObject("Scripting.FileSystemObject")
folder = """" & fs.GetParentFolderName(scut.TargetPath) & """"
wshshell.Run(folder)
/************************open_shrtct_parent_folder.vbs******************************/
/************************lnk.reg**************************/
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\lnkfile\shell]
[HKEY_CLASSES_ROOT\lnkfile\shell\Open Folder]
[HKEY_CLASSES_ROOT\lnkfile\shell\Open Folder\command]
@="wscript.exe \"F:\\Scripts\\open_shrtct_parent_folder.vbs\" \"%L\""
/************************lnk.reg**************************/
注:
1. 请修改上面的F:\\Scripts\\open_shrtct_parent_folder.vbs为实际存放open_shrtct_parent_folder.vbs的路径。
2. 不要复制/*****/行。
脚本的速度还是有点慢,有点电脑上测试打开会有比较大的延迟,但也有表现飞快地。
其实我一直使用C/C++,对vb和script都不熟。谁有兴趣可以直接写一个注册的脚本。