标题: [文件操作] 已解决--关于shortcut创建快捷方式的批处理 [打印本页]
作者: 大地 时间: 2020-5-9 08:40 标题: 已解决--关于shortcut创建快捷方式的批处理
本帖最后由 大地 于 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
复制代码
作者: smss 时间: 2020-5-9 10:52
本帖最后由 smss 于 2020-5-9 10:54 编辑
PE中调用PECMD把脚本放入处置工具目录文件夹中
PECMD.ini直接调用显而易见更快方便
BAT版- for /f "delims=*" %%i in ('dir /a-d/b/s .\*.exe') do PECMD link %userprofile%\desktop\%%~ni,%%~fi
复制代码
PECMD版- FORX /S %CurDir%\*,&&f,,
- {
- FNAM &&s=%&f%
- FEXT &&u=%&f%
- IFEX %&f%\,! FIND $%&s%<>, FIND $%&u%=exe, LINK %Desktop%\%s%,%&f%
- }
复制代码
作者: 大地 时间: 2020-5-9 12:58
本帖最后由 大地 于 2020-5-9 13:15 编辑
回复 2# smss
我想学一下批处理快捷方式
作者: xp3000 时间: 2020-5-9 13:11
PE里面我记得有个文件直接配置快捷方式,似乎是个inf
作者: went 时间: 2020-5-10 09:19
要加上.lnk后缀- call shortcut /f:"%%link:~0,-4%%.lnk" /a:c /t:"%%~i"
复制代码
用的这个http://www.bathome.net/viewthread.php?tid=4019&highlight=shortcut%2B
作者: 大地 时间: 2020-5-10 11:01
回复 5# went
还是大师厉害,针对性切中要害,解决问题,再次表示感谢。
剩下的是我慢慢理解和学习代码的含义了,特别for是语句。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |