@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
echo 快捷方式创建工具
echo ====================
echo 1. 创建文件快捷方式
echo 2. 创建文件夹快捷方式
echo 3. 为当前目录创建快捷方式
echo ====================
set /p choice="请选择 (1-3): "
if "%choice%"=="1" goto CreateFileLink
if "%choice%"=="2" goto CreateFolderLink
if "%choice%"=="3" goto CreateCurrentDirLink
goto :EOF
:CreateFileLink
echo.
echo 当前目录下的文件:
dir /b /a-d
echo.
set /p target="请输入要创建快捷方式的文件名: "
if not exist "%target%" (
echo 文件不存在!
pause
goto :EOF
)
set /p linkname="请输入快捷方式名称 (默认: %target%.lnk): "
if "%linkname%"=="" set linkname=%target%.lnk
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%linkname%');$s.TargetPath='%cd%\%target%';$s.Save()"
echo 快捷方式创建成功:%linkname%
goto :EOF
:CreateFolderLink
echo.
echo 当前目录下的文件夹:
dir /b /ad
echo.
set /p target="请输入要创建快捷方式的文件夹名: "
if not exist "%target%\" (
echo 文件夹不存在!
pause
goto :EOF
)
set /p linkname="请输入快捷方式名称 (默认: %target%.lnk): "
if "%linkname%"=="" set linkname=%target%.lnk
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%linkname%');$s.TargetPath='%cd%\%target%';$s.Save()"
echo 快捷方式创建成功:%linkname%
goto :EOF
:CreateCurrentDirLink
set /p linkname="请输入快捷方式名称 (默认: 当前目录.lnk): "
if "%linkname%"=="" set linkname=当前目录.lnk
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%linkname%');$s.TargetPath='%cd%';$s.Save()"
echo 快捷方式创建成功:%linkname%
goto :EOF
方法2:简单版脚本(直接创建)
@echo off
:: 创建文件快捷方式
set target=example.txt
set linkname=我的文件快捷方式.lnk
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%linkname%');$s.TargetPath='%cd%\%target%';$s.Save()"
:: 创建文件夹快捷方式
set folder=subfolder
set folderlink=我的文件夹快捷方式.lnk
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%folderlink%');$s.TargetPath='%cd%\%folder%';$s.Save()"
方法3:带图标的快捷方式
@echo off
:: 创建带自定义图标的快捷方式
set target=myprogram.exe
set linkname=我的程序.lnk
set icon=C:\Windows\System32\shell32.dll,15
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%linkname%');$s.TargetPath='%cd%\%target%';$s.IconLocation='%icon%';$s.Save()"
方法4:批量创建快捷方式
@echo off
:: 为当前目录下所有.exe文件创建快捷方式
for %%f in (*.exe) do (
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('%%~nf.lnk');$s.TargetPath='%cd%\%%f';$s.Save()"
echo 已创建: %%~nf.lnk
)