中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [转贴]批量跑出程序的快捷方式
作者:
标题: [转贴]批量跑出程序的快捷方式 上一主题 | 下一主题
electronixtar
铂金会员





积分 7493
发帖 2672
注册 2005-9-2
状态 离线
『楼 主』:  [转贴]批量跑出程序的快捷方式

原贴就是强!
http://bbs.et8.net/bbs/showthread.php?t=657396
看看人家编程的格式,太专业了, 怎么看都象C系语言,呵呵。程序的思路清晰明了。用到了一个shortcut.exe,是NT资源工具包里面的,论坛上有

  Quote:
今天格了盘,忘了备绿色/准绿色程序的快截方式,目录进进出出实在烦
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'>"
2006-6-21 21:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wsklll
初级用户




积分 79
发帖 31
注册 2006-6-11
状态 离线
『第 2 楼』:  

electronixtar 转的帖子 都有质量哦
得好好学习

2006-6-24 23:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yywd
中级用户





积分 358
发帖 130
注册 2005-11-12
状态 离线
『第 3 楼』:  

没shortcut呀, 谁传一下好吗

2007-5-18 09:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by yywd at 2007-5-18 09:30:
没shortcut呀, 谁传一下好吗

论坛里面有,自己搜索一下。

2007-5-18 12:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttyp
初级用户





积分 180
发帖 84
注册 2006-9-7
状态 离线
『第 5 楼』:  

楼主能给个CCF的邀请么

2007-5-18 12:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

呵呵,楼主自己的帐号都是借来的。

2007-5-18 12:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttyp
初级用户





积分 180
发帖 84
注册 2006-9-7
状态 离线
『第 7 楼』:  

倒,那算了,这也挺好的,呵呵

2007-5-18 12:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttyp
初级用户





积分 180
发帖 84
注册 2006-9-7
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by yywd at 2007-5-18 09:30:
没shortcut呀, 谁传一下好吗

http://www.cn-dos.net/forum/view ... =%E5%BF%AB%E6%8D%B7

2007-5-18 13:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:  

To ttyp:

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

不要帐号也罢。呵呵。

2007-5-18 13:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ttyp
初级用户





积分 180
发帖 84
注册 2006-9-7
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by lxmxn at 2007-5-18 13:10:
To ttyp:

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

不要帐号也罢。呵呵。

以前经常关顾的,但是有段日子游客连访问都不能了,所以好久都没去了,不能下载也麻烦,看到好的软件工具不能下,扫兴啊:mad:,其实好的网站不很多么,深度,无忧,龙族等

2007-5-18 13:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hntigger
新手上路





积分 11
发帖 8
注册 2006-10-11
状态 离线
『第 11 楼』:  

很好。学习了

2007-9-10 07:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
senffon
初级用户





积分 118
发帖 66
注册 2005-10-21
状态 离线
『第 12 楼』:  

这个不错,不过生成的快捷方式要是能是程序名(中文名)就是说快捷方式名取程序的目录名就好了,好像我以前发过的这个!
@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


2009-4-2 10:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: