|
本帖最后由 yyz2191958 于 2025-3-20 12:32 编辑
分享:文件(夹)固定到任务栏-拖(10 PE上测试成功,其它没有测试)(需要能够运行 vbs 的环境)
=============================================================
添加到任务栏(拖)(最新,快捷方式也支持).rar:
适用范围:所有文件、文件夹(包括快捷方式)
使用方法:将文件(夹)(快捷方式也一样)拖到 “添加到任务栏(拖).bat”图标上
==================================================
原理:
1.在快捷方式的 “目标” 的最前面添加 “explorer.exe ”(用vbs修改————得到了 “批处理之家” 的 “yakeyun” 帮助)
2.用 “Pecmd.exe” 命令固定到任务栏
3.修改快捷方式为正常(即:快捷方式的 “目标” 的最前面不再有 “explorer.exe ”)
=================================================
代码:
@echo off
::【双击退出,拖运行】
if "%~1"=="" exit /b 3
"%~dp0隐藏批处理窗口.exe" @ /HID
::【检测“TaskBar”里面,有无 “文件名.lnk” 文件(有向下(退出),无到 :A)】
cd /d "%appData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\" >nul 2>nul
if not exist "%~n1.lnk" goto :A
exit
::==============================================================================================
:A
::【检测(被拖文件是否.lnk)(是跳到:S,否跳到:T)】
echo %~1 |findstr /rec:".lnk *"&&goto :S||goto :T
::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆【下面是对(.lnk)的代码】▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
:S
RD /S /Q "%~dp0lnk文件" >nul 2>nul &MD "%~dp0lnk文件\" &xcopy /y %1 "%~dp0lnk文件\" >nul 2>nul
::==============================================================================================
::【获取:lnk指向目标】
>"%tmp%\t.t" echo;WSH.echo CreateObject("WScript.Shell").CreateShortcut(WSH.Arguments(0)).targetpath & for /f "delims=" %%a in ('cscript -nologo -e:vbscript "%tmp%\t.t" "%~1"') do set "lnk指向目标=%%a"
set "lnk路径=%~1"
::==============================================================================================
::【添加:在快捷方式的目标最前面,添加 “explorer.exe ”】
>"lnk(含explorer.exe).vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"lnk(含explorer.exe).vbs" echo strShortcutPath = "%lnk路径%" '快捷方式的路径
>>"lnk(含explorer.exe).vbs" echo Set oShellLink = WshShell.CreateShortcut(strShortcutPath)
>>"lnk(含explorer.exe).vbs" echo oShellLink.TargetPath = "%SystemRoot%\explorer.exe"
>>"lnk(含explorer.exe).vbs" echo oShellLink.Arguments = "%lnk指向目标%" '文件夹路径
>>"lnk(含explorer.exe).vbs" echo oShellLink.Save '保存
lnk(含explorer.exe).vbs
::==============================================================================================
::【固定在任务栏】
"%~dp0Pecmd.exe" PINT "%lnk路径%",TaskBand
::==============================================================================================
::【修改:(TaskBar目录、原来目录)里面的快捷方式为正常】
copy /y "%~dp0lnk文件\*.*" "%appData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\"
copy /y "%~dp0lnk文件\*.lnk" "%~dp1"
::==============================================================================================
::【删除无用文件(文件夹)】
RD /S /Q "%~dp0lnk文件\" & del lnk(含explorer.exe).vbs
::==============================================================================================
::【刷新】
ASSOC .tmp=tmpfile
exit
::▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆【下面是对(文件夹 和 文件)的代码】▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆▆
:T
"%~dp0创建快捷方式.exe" /f:"%~dp1%~n1.lnk" /a:c /t:%1
::==============================================================================================
set "lnk路径=%~dp1%~n1.lnk"
set "文件夹路径=%~1"
::【添加:在快捷方式的目标最前面,添加 “explorer.exe ”】
>"lnk(含explorer.exe).vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"lnk(含explorer.exe).vbs" echo strShortcutPath = "%lnk路径%" '快捷方式的路径
>>"lnk(含explorer.exe).vbs" echo Set oShellLink = WshShell.CreateShortcut(strShortcutPath)
>>"lnk(含explorer.exe).vbs" echo oShellLink.TargetPath = "%SystemRoot%\explorer.exe"
>>"lnk(含explorer.exe).vbs" echo oShellLink.Arguments = "%文件夹路径%" '文件夹路径
>>"lnk(含explorer.exe).vbs" echo oShellLink.Save '保存
lnk(含explorer.exe).vbs
::==============================================================================================
::【固定在任务栏】
"%~dp0Pecmd.exe" PINT "%~dp1%~n1.lnk",TaskBand
::【删除无用文件(文件夹)】
del lnk(含explorer.exe).vbs "%~dp1%~n1.lnk"
::【修改:TaskBar里面的快捷方式为正常的 】
"%~dp0创建快捷方式.exe" /f:"%appData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\%~n1.lnk" /a:c /t:%1
::【刷新】
ASSOC .tmp=tmpfile
exit
|
|