Board logo

标题: [转贴]批量跑出程序的快捷方式 [打印本页]

作者: electronixtar     时间: 2006-6-21 21:11    标题: [转贴]批量跑出程序的快捷方式

原贴就是强!
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 ]
作者: wsklll     时间: 2006-6-24 23:44
electronixtar 转的帖子 都有质量哦
得好好学习
作者: yywd     时间: 2007-5-18 09:30
没shortcut呀, 谁传一下好吗
作者: lxmxn     时间: 2007-5-18 12:45


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

论坛里面有,自己搜索一下。
作者: ttyp     时间: 2007-5-18 12:53
楼主能给个CCF的邀请么
作者: lxmxn     时间: 2007-5-18 12:56
呵呵,楼主自己的帐号都是借来的。
作者: ttyp     时间: 2007-5-18 12:59
倒,那算了,这也挺好的,呵呵
作者: ttyp     时间: 2007-5-18 13:00


  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
作者: lxmxn     时间: 2007-5-18 13:10
To ttyp:

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

不要帐号也罢。呵呵。
作者: ttyp     时间: 2007-5-18 13:11


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

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

不要帐号也罢。呵呵。

以前经常关顾的,但是有段日子游客连访问都不能了,所以好久都没去了,不能下载也麻烦,看到好的软件工具不能下,扫兴啊:mad:,其实好的网站不很多么,深度,无忧,龙族等
作者: hntigger     时间: 2007-9-10 07:21
很好。学习了
作者: senffon     时间: 2009-4-2 10:43
这个不错,不过生成的快捷方式要是能是程序名(中文名)就是说快捷方式名取程序的目录名就好了,好像我以前发过的这个!
@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