中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-05 11:39
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理实现 xp 快捷方式的查找目标功能 查看 1,137 回复 6
楼 主 如何用批处理实现 xp 快捷方式的查找目标功能 发表于 2006-11-22 05:26 ·  中国 河北 石家庄 联通
初级用户
积分 29
发帖 10
注册 2006-10-31 07:06
19年会员
UID 68986
性别 男
状态 离线
如题,或者类似功能 比如转到 资源管理器-所在目录
2 发表于 2006-11-22 05:34 ·  中国 浙江 宁波 鹏博士宽带
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
21年会员
UID 40733
性别 男
状态 离线
到这里看看
http://www.cn-dos.net/forum/viewthread.php?tid=25053

[ Last edited by 无奈何 on 2006-11-25 at 06:00 AM ]
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 出现 发表于 2006-11-22 07:02 ·  中国 河北 石家庄 联通
初级用户
积分 29
发帖 10
注册 2006-10-31 07:06
19年会员
UID 68986
性别 男
状态 离线
@echo off

if "%~1" == "" goto :EOF

::检查扩展名是否是快捷方式文件

if /i "%~x1" NEQ ".lnk" goto error

for /f "delims=" %%i in ('find ":" "%~1" ^|findstr /r "^[A-z]:[\\]"') do (

start "" explorer /select,/n,"%%~fi"

)

goto :EOF

:error

::抛出错误提示窗口

start cmd /c "title 提示!&mode con cols=30 lines=5 &for /l %%i in (5,-1,1) do cls &echo. 所选文件不是快捷方式!( %%i )&ping/n 2 127.1>nul"



谢谢!
又 能否加到右键菜单呢

在注册表里试了一下,总是出现 所选文件不是快捷方式!
好像是参数不对
请高手指教
4 发表于 2006-11-22 09:37 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
20年会员
UID 42173
性别 男
状态 离线
可能的原因是:Windows会自动把 .lnk 指向目标文件。

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
5 发表于 2007-01-28 13:23 ·  中国 福建 三明 电信
新手上路
积分 8
发帖 5
注册 2006-11-25 05:53
19年会员
UID 71670
性别 男
状态 离线
Originally posted by aaa321a at 2006-11-21 06:02 PM:
@echo off
if "%~1" == "" goto :EOF
::检查扩展名是否是快捷方式文件
if /i "%~x1" NEQ ".lnk" goto error
for /f "delims=" %%i in ('find ":" "%~1" ^|findstr /r "^:"')

do (
explorer /select,/e,"%%~dpi"
)
goto :EOF
:error
::抛出错误提示窗口
start cmd /c "title 提示!&mode con cols=30 lines=5 &for /l %%i in (5,-1,1) do cls &echo. 所选文件不是快捷方式!( %%i ) &ping/n 2 127.1>nul"


[ Last edited by gues1688 on 2007-1-28 at 12:26 AM ]
6 发表于 2007-01-28 13:37 ·  中国 北京 联通
中级用户
★★
带走
积分 435
发帖 88
注册 2005-09-24 19:22
20年会员
UID 42793
状态 离线
如果是增加到右键菜单那就不必判断是否是.lhk文件了。在CMD下直接执行:
reg add HKCR\lnkfile\shell\ShortCutOpen /f /ve /d "定位文件(&E)"
reg add HKCR\lnkfile\shell\ShortCutOpen\command /f /ve /d "cmd /cfor /f \"delims=\" %%i in ('find \":\" \"%1\"^|findstr /r \"^^:\"') do @(explorer /select,/n,\"%~fi\")

我都是这么用的^_^ 如果是放到文件中,记得双写百分号。
7 发表于 2007-08-12 16:49 ·  中国 四川 南充 营山县 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
VBS版
@echo off
echo Set OS = GetObject("winmgmts:")>%windir%\czmd.vbs
echo Set CF = OS.ExecQuery("Select * From Win32_ShortcutFile WHERE Name = '" ^& Replace(WScript.Arguments(0),"\","\\") ^& "'")>>%windir%\czmd.vbs
echo Set WS = WScript.CreateObject("WScript.Shell")>>%windir%\czmd.vbs
echo For Each objFile in CF>>%windir%\czmd.vbs
echo WS.Run ("explorer /select," ^& objFile.Target)>>%windir%\czmd.vbs
echo Next>>%windir%\czmd.vbs
REG ADD HKCR\lnkfile\shell\查找目标\command /ve /d "C:\WINDOWS\system32\WScript.exe c:\windows\czmb.vbs %%1" /f

命令版:
@echo off
reg add HKCR\lnkfile\shell\定位文件\command /f /ve /d "cmd /cfor /f \"delims=\" %%%%i in ('find \":\" \"%%1\"^|findstr \"^^:\"') do explorer /select,/n,\"%%~fi\"
论坛跳转: