. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』 » 专题:命令正则

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#1 旧 2005-05-09, 15:45:05 默认 【原创】批量跑出程序的快捷方式
hitme 当前离线  

今天格了盘,忘了备绿色/准绿色程序的快截方式,目录进进出出实在烦
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
上传的附件
文件类型: rar creat_shortcut.rar (6.6 KB, 43 次查看)

此帖于 2005-05-11 12:19:45 被 hitme 编辑. .
蓝色jj
 
蓝色jj 的头像
『硬件使用』版主
 
资 料:
注册日期: Jul 2000
帖子: 24,584 声望值: 5
精华: 1,解答: 20
#2 旧 2005-05-09, 15:53:50 默认
蓝色jj 当前离线  

汗。。。。太多exe不是收集垃圾了嘛?
我用tar,全键盘操作,无需任何一个快捷方式。纯绿色软件。


INTEL-Q9400 VDATA-2GDDRII800 WD-500G HT-160g YESTON-9600GT GIGA-EP43-US3L ACER-X233H GW-BTX-400SD
panmona
 
panmona 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,595 声望值: 3
精华: 0,解答: 8
#3 旧 2005-05-09, 16:00:12 默认
panmona 当前离线  

直接搜索exe,然后多选需要的发送桌面快捷方式.


Hello world!
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#4 旧 2005-05-09, 16:00:53 默认
hitme 当前离线  

引用:
作者: 蓝色jj
汗。。。。太多exe不是收集垃圾了嘛?
我用tar,全键盘操作,无需任何一个快捷方式。纯绿色软件。

全名是啥?
我就是一土老冒啊
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#5 旧 2005-05-09, 16:05:36 默认
hitme 当前离线  

引用:
作者: panmona
直接搜索exe,然后多选需要的发送桌面快捷方式.
太多了,眼睛顶不住了。。cmd滤下,减少扫描数量

偶然发现的好处:
1.发掘出了几个压箱底的东东
2.如本身有较好的分类,稍改下cmd,也能实现lnk的自动分类
hpcex
 
hpcex 的头像
合作伙伴
 
资 料:
注册日期: Dec 2004
帖子: 5,298 声望值: 6
精华: 6,解答: 11
#6 旧 2005-05-09, 17:34:06 默认
hpcex 当前离线  

好脚本 很方便 谢谢

to 蓝色jj:tar 是啥 我也很土 能否详细介绍下呢
lyh728
 
lyh728 的头像
『软件使用』版主
 
资 料:
注册日期: Jan 2002
帖子: 4,283 声望值: 3
精华: 15,解答: 4
#7 旧 2005-05-09, 17:40:23 默认
lyh728 当前离线  

引用:
作者: hpcex
好脚本 很方便 谢谢

to 蓝色jj:tar 是啥 我也很土 能否详细介绍下呢
大概是 unix 下常用的打包命令
mouze
 
mouze 的头像
热心会员
 
资 料:
注册日期: Apr 2002
帖子: 8,207 声望值: 13
精华: 5,解答: 65
#8 旧 2005-05-09, 18:03:25 默认
mouze 当前离线  

晕,hitme的批处理技术简直登峰造极~~偶是五体投地!


Ignorance is bliss. 无知是福。
pzero
 
pzero 的头像
热心会员
 
资 料:
注册日期: Oct 2001
帖子: 3,835 声望值: 4
精华: 1,解答: 3
#9 旧 2005-05-09, 18:16:26 默认
pzero 当前离线  

太厉害了,还好偶的快捷方式都已经在硬盘的另外的分区作了备份。
五彩风云
 
五彩风云 的头像
热心会员
 
资 料:
注册日期: Jan 2002
帖子: 4,364 声望值: 5
精华: 0,解答: 3
#10 旧 2005-05-09, 19:13:21 默认
五彩风云 当前离线  

TAR= TypeAndRun ?
蓝色jj
 
蓝色jj 的头像
『硬件使用』版主
 
资 料:
注册日期: Jul 2000
帖子: 24,584 声望值: 5
精华: 1,解答: 20
#11 旧 2005-05-09, 19:46:21 默认
蓝色jj 当前离线  

引用:
作者: 五彩风云
TAR= TypeAndRun ?
NOD!就素介个。。。
zjsheng
 
zjsheng 的头像
超级会员
 
资 料:
注册日期: Mar 2002
帖子: 1,973 声望值: 3
精华: 1,解答: 1
#12 旧 2005-05-09, 21:19:22 默认
zjsheng 当前离线  

用hitme脚本创建的快捷方式有的不能正常运行,原因是有些软件在快捷方式属性中要指定起始目录。
Garuda
 
Garuda 的头像
热心会员
 
资 料:
注册日期: Mar 2000
帖子: 367 声望值: 3
精华: 0,解答: 1
#13 旧 2005-05-09, 22:56:03 默认
Garuda 当前离线  

好东西。。收了~

琢磨怎么分类的
如尘
 
如尘 的头像
超级会员
 
资 料:
注册日期: Apr 2005
帖子: 1,139 声望值: 3
精华: 0
#14 旧 2005-05-09, 22:58:29 默认
如尘 当前离线  

确实很棒!这样一来就方便多了!


来如微雨...去如尘...
hitme
 
hitme 的头像
支柱会员
 
资 料:
注册日期: Oct 2001
帖子: 6,489 声望值: 2
精华: 38,解答: 6
#15 旧 2005-05-10, 12:22:15 默认
hitme 当前离线  

引用:
作者: Garuda
好东西。。收了~

琢磨怎么分类的
设分类为
d:\绿色软件\net
d:\绿色软件\pic
等等..
集中在这里修改
代码:
:shortcut
pause
md link
for /f "delims=" %%i in (list.txt) do (
            shortcut -d %%~dpi "%%i"
            for /f "tokens=3 delims=\" %%a in ("%%i") do (
                         echo f | xcopy *.lnk "link\%%a\"
                         del *.lnk
                          )
)

此帖于 2005-05-11 19:12:28 被 hitme 编辑. .
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 01:36:51.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号