You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:58:01