循环遍历 .bat 位置的子文件夹,为每个 .exe 创建快捷方式,添加最高子文件夹前缀,保存到指定文件夹

循环遍历 .bat 位置的子文件夹,为每个 .exe 创建快捷方式,添加最高子文件夹前缀,保存到指定文件夹

正如标题所说,但是这是图片以获得直观的解释。

我喜欢通过批处理脚本来执行此操作的想法。(因为我对批处理脚本比较熟悉,并且发现它们非常易读,这样我就可以更轻松地进行更改和/或在未来重新使用代码)

不过,我并不反对其他混合解决方案或完全不同的解决方案。我唯一的要求是,它必须在现代 Windows 计算机上运行,​​并且不需要除更新之外的其他安装。

您可以在下面找到我当前的代码(来源),但请注意,这还不能满足我的所有标准,因为我的批处理和 google-fu 技能都用完了:

@echo off

set "des=%~dp0\_shortcuts"
set "src=%~dp0"

setlocal enabledelayedexpansion
for /r "%src%" %%A in (*.exe) do (
    set "exe=%%A"
    set "name=%%~nA"

    set "SCRIPT=%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"

    echo Set oWS = WScript.CreateObject^("WScript.Shell"^) >> !SCRIPT!
    echo sLinkFile = "%des%\!name!.lnk" >> !SCRIPT!
    echo Set oLink = oWS.CreateShortcut^(sLinkFile^) >> !SCRIPT!
    echo oLink.TargetPath = "!exe!" >> !SCRIPT!
    echo oLink.Save >> !SCRIPT!

    cscript /nologo !SCRIPT!
    del !SCRIPT!

)
PAUSE

使用上述代码,我在尝试创建每个快捷方式时都会收到如下错误:

C:\Users\mica\AppData\Local\Temp\24172-1508-16791-17305.vbs(5, 1) WshShortcut.Save:无法保存快捷方式“C:\Users\mica\OneDrive\Documents_create Shortcuts_shortcuts\in-test1-folder.lnk”。

我认为这是一个海拔问题,所以我尝试实施此代码来修复该问题,但是没有成功。

如果有人能帮助完成代码或有更好的解决方案,请分享!另外,如果我忘记提到任何事情,请告诉我。

相关内容