中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [转贴]批量跑出程序的快捷方式
楼 主 [转贴]批量跑出程序的快捷方式 发表于 2006-06-21 21:11 ·  IANA 局域网IP(Private-Use)
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
原贴就是强!
http://bbs.et8.net/bbs/showthread.php?t=657396
看看人家编程的格式,太专业了, 怎么看都象C系语言,呵呵。程序的思路清晰明了。用到了一个shortcut.exe,是NT资源工具包里面的,论坛上有


今天格了盘,忘了备绿色/准绿色程序的快截方式,目录进进出出实在烦
explorer搜索*.exe,右键拖出快捷方式,受到非入口exe的干扰,迷眼睛啊

想办法呀,想办法呀,cmd滤一下,用到了置顶的命令行创建快捷方式的工具shortcut.exe
两个策略:
1,枚举路径,如本层路径下存在有exe文件,则不深入到下一层
2,滤出上次访问时间最新的exe文件,就当它是入口吧,眼睛是我们宝贵的辩识力量


@echo off

echo.
echo.
echo.批量跑出程序的快捷方式.cmd by hitme 2005.5.11
echo.
echo.稍等...
:P1
::***********************************************************
::#列表路径
::#滤镜1:路径下存在有exe文件
::#滤镜1:枚举路径,如本层路径下存在有exe文件,则不深入到下一层
::***********************************************************
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in ('dir /s/b *.exe ^| findstr /v /i "shortcut\.exe$"') do (
find "%%~dpi" tmp.txt>nul || (
echo %%~dpi | find "!n!">nul || (
echo %%~dpi>>tmp.txt
set n=%%~dpi
)
)
)
endlocal

:P2
::***********************************************************
::#以P1路径列表为原料,继续加工
::#过滤上次访问时间最新的exe文件
::***********************************************************
for /f "delims=" %%i in (tmp.txt) do (
dir /ta "%%i*.exe" | sort /r | findstr /n "." | findstr /r "^1:">>tmp1.txt
)

:P3
::***********************************************************
::#同行合并P1,P2=>list.txt
::***********************************************************
set /a N1=0
for /f %%i in (tmp.txt) do set /a N1+=1
for /l %%a in (1,1,%N1%) do (
for /f "tokens=1* delims=:" %%i in ('findstr /n "." tmp.txt ^|findstr /r "^%%a:"') do set dir=%%j
for /f "tokens=3*" %%i in ('findstr /n "." tmp1.txt ^|findstr /r "^%%a:"') do set filename=%%j
setlocal ENABLEDELAYEDEXPANSION
echo !dir!!filename!
echo !dir!!filename!>>list.txt
endlocal
)


:shortcut
::***********************************************************
::#依据list.txt路径列表,创建link
::***********************************************************
pause
for /f "delims=" %%i in (list.txt) do (
shortcut -d %%~dpi "%%i"
)

:clean
::***********************************************************
::#打扫卫生
::***********************************************************
del tmp*.txt list.txt 2>nul



[ Last edited by electronixtar on 2006-6-21 at 21:16 ]

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'>"
2 发表于 2006-06-24 23:44 ·  中国 湖南 常德 电信
初级用户
积分 79
发帖 31
注册 2006-06-11 19:16
UID 56887
性别 男
状态 离线
electronixtar 转的帖子 都有质量哦
得好好学习
3 发表于 2007-05-18 09:30 ·  中国 广东 深圳 电信
中级用户
★★
积分 358
发帖 130
注册 2005-11-12 16:29
UID 45117
状态 离线
没shortcut呀, 谁传一下好吗
4 发表于 2007-05-18 12:45 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by yywd at 2007-5-18 09:30:
没shortcut呀, 谁传一下好吗

论坛里面有,自己搜索一下。
5 发表于 2007-05-18 12:53 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
UID 61995
状态 离线
楼主能给个CCF的邀请么
6 发表于 2007-05-18 12:56 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
呵呵,楼主自己的帐号都是借来的。
7 发表于 2007-05-18 12:59 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
UID 61995
状态 离线
倒,那算了,这也挺好的,呵呵
8 发表于 2007-05-18 13:00 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
UID 61995
状态 离线
Originally posted by yywd at 2007-5-18 09:30:
没shortcut呀, 谁传一下好吗


http://www.cn-dos.net/forum/viewthread.php?tid=25494&fpage=1&highlight=%E5%BF%AB%E6%8D%B7
9 发表于 2007-05-18 13:10 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
To ttyp:

没有帐号可以看里面的帖子,只是不能发贴、下载里面的文件罢了。

不要帐号也罢。呵呵。
10 发表于 2007-05-18 13:11 ·  中国 上海 电信
初级用户
★★
积分 180
发帖 84
注册 2006-09-07 00:33
UID 61995
状态 离线
Originally posted by lxmxn at 2007-5-18 13:10:
To ttyp:

没有帐号可以看里面的帖子,只是不能发贴、下载里面的文件罢了。

不要帐号也罢。呵呵。


以前经常关顾的,但是有段日子游客连访问都不能了,所以好久都没去了,不能下载也麻烦,看到好的软件工具不能下,扫兴啊:mad:,其实好的网站不很多么,深度,无忧,龙族等
11 发表于 2007-09-10 07:21 ·  中国 湖南 常德 电信
新手上路
积分 11
发帖 8
注册 2006-10-11 09:55
UID 65312
状态 离线
很好。学习了
12 发表于 2009-04-02 10:43 ·  中国 广东 东莞 电信
初级用户
★★
积分 118
发帖 66
注册 2005-10-21 03:27
UID 43827
状态 离线
这个不错,不过生成的快捷方式要是能是程序名(中文名)就是说快捷方式名取程序的目录名就好了,好像我以前发过的这个!

@echo off
@color 0b
if not exist "C:\Progra~1\winrar\rar.exe" pause>nul|@echo.& echo.本程序需要WINRAR配合使用,请安装winrar后继续..
echo 正在扫描硬盘文件,请稍候.......
echo TempMode >%temp%\shortlst
echo Silent=1 >>%temp%\shortlst
echo Overwrite=2 >>%temp%\shortlst
for /f "delims=\ tokens=1,2,3,4" %%a in ('dir /b /s %cd%\*.exe') do (
Echo shortcut=D,"%%a\%%b\%%c\%%~nxd","","","%%c">>%temp%\shortlst)
C:\Progra~1\winrar\rar.exe a -sfx %temp%\short.exe nul -z <%temp%\shortlst >nul
pause>nul|@echo.& echo.文件扫描完成,请按任意键继续生成快捷方式..
start %temp%\short.exe
exit

论坛跳转: