@echo off setlocal enabledelayedexpansion chcp 65001 :: 设置快捷方式的源路径 set "SOURCE_SHORTCUT=案件管理与分析系统.lnk" :: 获取注册表中的桌面路径 for /f "tokens=3*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do ( set "REG_DESKTOP=%%a %%b" ) :: 获取系统默认的桌面路径 set "DEFAULT_DESKTOP=%USERPROFILE%\Desktop" :: 判断变量REG_DESKTOP最后一个字符是否是空格,如果是则去除 set "LAST_CHAR=%REG_DESKTOP:~-1%" if "%LAST_CHAR%"==" " ( set "REG_DESKTOP=%REG_DESKTOP:~0,-1%" ) echo %REG_DESKTOP% | findstr /C:"C:" >nul if %errorlevel% EQU 0 ( echo REG_DESKTOP 包含字符串 C: set "PATH=%DEFAULT_DESKTOP%" ) else ( echo REG_DESKTOP 不包含字符串 C: set "PATH=%REG_DESKTOP%" ) :: 拼接快捷方式目标路径 set "SHORTCUT_PATH=%PATH%\%SOURCE_SHORTCUT%" echo 桌面文件夹路径: %PATH% echo 拼接快捷方式目标路径: %SHORTCUT_PATH% :: 检查同级目录下快捷方式是否存在 if not exist "%SOURCE_SHORTCUT%" ( echo 快捷方式不存在: %SOURCE_SHORTCUT% exit /b ) :: 检查桌面是否已存在同名快捷方式 if exist "%SHORTCUT_PATH%" ( echo 快捷方式已存在于桌面,不需要创建 exit /b ) :: 复制快捷方式到桌面并保留文件属性 %SystemRoot%\System32\xcopy.exe /k /y "%SOURCE_SHORTCUT%" "%PATH%" :: 检查复制是否成功 if %ERRORLEVEL% EQU 0 ( echo 快捷方式已成功复制到桌面 ) else ( echo 复制快捷方式失败,请检查权限 ) endlocal :: pause