本帖最后由 大地 于 2020-5-10 11:01 编辑
.
上次辛苦了went老师写了用mklink的批处理代码,我学了半知半解,现在又想学习用shortcut的方法创建,根据shortcut的方法把原批处理照样画葫芦改了一下,正常运行创建目录及文件,但是目标上的快捷方式好像不完整,点击无反应,属性没显示是快捷方式,哪位老师能帮我分析一下,哪里画错了需要改进一下,全程代码如下:- @echo off
- REM Admin
- %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","REM",,"runas",1)(window.close)&exit
- REM search drivers
- set "drivers=C D E F G H I J K L M N O P Q R S T U V W"
- REM exe foldername
- set "exeFolderName=集群工具包"
- REM main foldername
- set "linkFolderName1=%USERPROFILE%\desktop"
- set "linkFolderName2=%ProgramData%\Microsoft\Windows\Start Menu\Programs"
- REM esp exe
- set "espExe=\磁盘软件\BOOTICE.exe?\图片工具\小型截图软件.exe?\镜像软件\UltraISO.exe?\播放器\PotPlayer.exe?\数据恢复\数据恢复.exe"
- REM start
- for %%i in (%drivers%) do if exist "%%i:\" (
- set /p="check:%%i:\%exeFolderName% "<nul
- if exist "%%i:\%exeFolderName%" (
- echo OK!
- set "folder=%%i:\%exeFolderName%"
- goto :done
- ) else echo not found!
- )
- echo -------------
- for %%i in (%drivers%) do (
- cd /d "%%i:\" 2>nul && (
- echo search %%i: please wait...
- for /r /d %%a in ("*") do (
- if "%%~na" equ "%exeFolderName%" (
- set "folder=%%~a"
- goto :done
- )
- )
- )
- )
- :done
- if "%folder%"=="" echo %exeFolderName% not found! & pause&exit
- echo -------------
- echo "folder=%folder%"
- echo -------------
- for /r "%folder%" %%i in ("*.exe") do (
- echo mklink: %%~i
- call set "exe=%%~i"
- call echo %espExe% | call findstr /i /C:"%%exe:%folder%\=%%" >nul 2>nul && (
- call echo add %userprofile%\desktop
- shortcut /f:"%userprofile%\desktop\%%~ni" /a:c /t:"%%~i" >nul
- )
- for /f "tokens=2 delims==" %%a in ('set linkFolderName') do (
- call set "link=%%a\%exeFolderName%\%%exe:%folder%\=%%"
- call mkdir "%%link:%%~nxi=%%" >nul 2>nul
- call shortcut /f:"%%link:~0,-4%%" /a:c /t:"%%~i" >nul
- )
- )
- pause&exit
复制代码
|