请求修改SendToQuickLaunch.js脚本以支持文件和文件夹操作并取消弹窗
请求修改SendToQuickLaunch.js脚本以支持文件和文件夹操作并取消弹窗
我已经帮你调整了SendToQuickLaunch.js脚本,现在它既能处理文件也能处理文件夹,而且全程不会弹出任何提示窗口,操作更静默高效。下面是修改后的完整脚本:
// SendToQuickLaunch.js - Version 2.0 (Modified to support files/folders & silent operation) // Copyright (c) 2010, 2013 Bill Chatfield <bill_chatfield@yahoo.com> // Modified to support files/folders and silent operation var programDesc = "Send to Quick Launch"; var quickLaunchPath = getShell().SpecialFolders("AppData") + "\\Microsoft\\Internet Explorer\\Quick Launch"; var shell = null; var fileSystem = null; var environment = null; /* Returns a FileSystemObject object */ function getFileSystem() { if (fileSystem == null) { fileSystem = WScript.CreateObject("Scripting.FileSystemObject"); } return fileSystem; } /* Returns a WshShell object */ function getShell() { if (shell == null) { shell = WScript.CreateObject("WScript.Shell"); } return shell; } /* Returns a WshEnvironment object */ function getEnvironment() { if (environment == null) { environment = getShell().Environment("Process"); } return environment; } /* Creates shortcut in Quick Launch for a given target path */ function createQuickLaunchShortcut(targetPath) { var fso = getFileSystem(); var shell = getShell(); var shortcutName = fso.GetFileName(targetPath); // Handle folder naming logic if (fso.FolderExists(targetPath)) { shortcutName = fso.GetFolder(targetPath).Name; } var shortcutPath = quickLaunchPath + "\\" + shortcutName + ".lnk"; // Skip creation if shortcut already exists if (!fso.FileExists(shortcutPath)) { var shortcut = shell.CreateShortcut(shortcutPath); shortcut.TargetPath = targetPath; // Set appropriate working directory based on target type if (fso.FolderExists(targetPath)) { shortcut.WorkingDirectory = targetPath; } else { shortcut.WorkingDirectory = fso.GetParentFolderName(targetPath); } shortcut.Save(); } } // Process all incoming files/folders from SendTo menu var args = WScript.Arguments; for (var i = 0; i < args.Count(); i++) { var targetItem = args.Item(i); var fso = getFileSystem(); if (fso.FileExists(targetItem) || fso.FolderExists(targetItem)) { createQuickLaunchShortcut(targetItem); } }
几个关键的调整说明:
- 现在不管是单个/多个文件,还是文件夹,拖到SendTo菜单里的这个选项都能处理,会自动生成对应的快捷方式到快速启动栏
- 全程没有任何弹窗提示,完全静默执行,不会打断你的操作流程
- 补全了原本没写完的
getEnvironment函数,保证脚本逻辑完整 - 加了重复判断,已经存在的快捷方式不会被重复创建,避免冗余
- 针对文件夹优化了快捷方式的命名和工作目录设置,逻辑更合理
备注:内容来源于stack exchange,提问作者kaj
相关产品推荐
相关产品推荐

