用户操作
[即时聊天] [发私信] [加为好友]
苏晓ID:suxiaojack
22647次访问,排名5691,好友8人,关注者21人。
追求真理
喜欢开源,爆破一些可以爆破的软件。
suxiaojack的文章
原创 35 篇
翻译 0 篇
转载 7 篇
评论 47 篇
suxiaojack的公告
C/C++
发QQ消息给我
评论支持客户端HTML代码
留言无此公告不支持了
最近评论
qqq:能发一个吗?先谢咯,邮箱438928461@qq.com
qq:
给一个吧


s921@163.com
qq:
给一个吧


s921@163.com
qyingj:能发一个给俺么?先谢谢啦。
邮箱:qyingj@163.com
panda:
哥们给我也发一个吧
sdlwgao@163.com
文章分类
    收藏
      相册
      推荐网站
      CodeProject
      GameRes游戏开发
      sourceforge
      XfocusTeam
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 windows下locate定位脚本加强收藏

      新一篇: 拨号类网络链接监控windows脚本 | 旧一篇: 用IceSword注册Sandboxie V3.01

      加快文件定位和处理速度的脚本。

      添加了,do.bat,fastdo.bat,lfastdo.bat三个文件。用来快速搜索并执行命令。

       locate.bat

       

      @echo off
      rem 快速文件定位,仿Linux locate程序
      rem
       作者:苏晓 2006年4月

      rem 如下{}测试的写法是最好的!其他的会出错。
      rem
       cls
      if {%1}=={} goto USEAGE
      if {%1}=={/?} goto USEAGE
      if /I {%1}=={/update} goto UPDATE
      if {%1}=={/goto TARGET
      if /I {%1}=={/delgoto TARGETDEL
      if /I {%2}=={/i}  goto FINDEX

      rem 开始判断'-'的包涵与否
      echo %1 > restrict.sut
      findstr 
      //C:"-" restrict.sut >result.sut
      for /"tokens=1,2*" %%j in (result.sut) do if {%%j}=={restrict.sut} goto BAD
      goto OK
      :BAD
      del result.sut
      del restrict.sut
      echo 请不要在字符串使用'-',而用.来代替。
      goto END

      :OK
      del result.sut
      del restrict.sut

      :FIND
      if exist %windir%dirdb.txt findstr %1 %windir%dirdb.txt
      if not exist %windir%dirdb.txt echo 没有目录数据库,请先建立然后再搜索。
      goto END
      :FINDEX
      if exist %windir%dirdb.txt findstr %2 %1 %windir%dirdb.txt
      if not exist %windir%dirdb.txt echo 没有目录数据库,请先建立然后再搜索。
      goto END

      :UPDATE
      echo 开始更新文件目录数据库。。。请等待
      echo 这是locate程序使用的数据库文件>%windir%dirdb.txt
      echo 作者:苏晓 2006年4月>>%windir%dirdb.txt
      for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i: echo 处理%%i盘 && echo true>%%i:Driver.true && if exist %%i:Driver.true pushd %%i: && del Driver.true && dir ///>>%windir%dirdb.txt && popd && echo %%i盘处理完毕
      echo 数据库更新成功!
      goto END
      rem 部分目录更新
      :TARGET
      if {%2}=={} goto USEAGE
      if {%3}=={} goto TARUPDATE

      rem 开始判断'-'的包涵与否
      echo %3 > restrict.sut
      findstr 
      //C:"-" restrict.sut >result.sut
      for /"tokens=1,2*" %%j in (result.sut) do if {%%j}=={restrict.sut} goto TARBAD
      goto TAROK
      :TARBAD
      del result.sut
      del restrict.sut
      echo 请不要在字符串使用'-',而用.来代替。
      goto END

      :TAROK
      del result.sut
      del restrict.sut

      if /I {%4}=={/i} goto TARFINDEX

      :TARFIND
      if exist %2dirdb.txt ( findstr %3 %2dirdb.txt ) else ( echo 没有该目录数据库,请先建立然后再搜索。)
      goto END
      :TARFINDEX
      if exist %2dirdb.txt ( findstr %4 %3 %2dirdb.txt ) else ( echo 没有该目录数据库,请先建立然后再搜索。)
      goto END

      :TARUPDATE
      if not exist %2 goto NOPATH 
      echo 开始更新目标地址文件目录数据库。。。请等待
      echo 这是locate程序使用的数据库文件>%2dirdb.txt
      echo 作者:苏晓 2006年4月>>%2dirdb.txt
      for %%i in (%2) do if exist %%i echo 处理%%i目录 && echo true>%%iDriver.true && if exist %%iDriver.true pushd %%i && del Driver.true && dir ///>>%2dirdb.txt && popd && echo %%i处理完毕
      goto END

      :NOPATH
      echo 目录不存在或者书写不正确。
      goto END

      :TARGETDEL
      if {%2}=={} goto USEAGE
      if exist %2dirdb.txt del %2dirdb.txt
      goto END
      :USEAGE
      echo 快速文件定位,仿Linux locate程序
      echo 作者:苏晓 2006年4月
      echo 使用方法:
      echo %0 {[/update] [[/][/del] [targetpath]] [filename [options:/I,/i]]}
      echo /update 重新建立分区目录数据库dirdb.txt,在%windir%目录下
      echo / 开启目标目录方式 targetpath是目标路径,结尾没有''符号
      echo /del 用来删除目标目录下的dirdb.txt文件
      echo filename 要查找的文件名称可以是大概的,支持使用findstr通配符。
      echo 目标目录方式下,不带filename则是新建立其目录数据库
      echo options 可以是 /I,/i 表示忽略大小写 
      findstr 
      /?
      echo 用法实例:
      echo %0 ".rmvb$ .avi$" 查找所有.rmvb和.avi结尾的文件
      echo %0 ".rm[vb]*$ .avi$" 查找所有 .rm和.rmvb(.rmvvbb等等).avi结尾的文件
      echo %0 / d: 建立d:下的数据库
      echo %0 / d:soft 建立d:soft下的数据库
      echo %0 / d:soft .exe$ /i 查找d:soft目录数据库中的记录,查找.exe文件忽略大小写
      echo %0 /del d:soft 删除d:soft目录数据库
      :END

       

      do.bat

       

      @echo off
      rem 版本1.2

      if {%1}=={} goto useage
      if {%1}=={/?} goto useage
      if {%1}=={--help} goto useage
      if {%2}=={} goto show
      if {%2}=={0goto show
      if {%2}=={1goto doone
      if /I {%2}=={all} goto alldo
      if not exist %1 goto useage
      if {%2}=={2goto truedo
      set /a test=%2
      if not %test%==0 goto truedo
      goto useage

      rem 计数显示辅助
      :counterReInit
      set /a filecount = 0
      goto TRUEOUT
      :counterAdd
      set /a filecount = %filecount%+1
      goto TRUEOUT
      :counterAddShow
      set /a filecount = %filecount%+1
      echo %filecount%?%~fzta1
      goto TRUEOUT
      rem 显示辅助结束

      :truedo
      :check
      call:counterReInit
      for /"tokens=*" %%i in (%1) do call:counterAdd
      set /a PASS=%2-1
      set /a test=%PASS%/%filecount%
      if %test%==1 ( echo 索引超过了%filecount%! && goto EXIT )
      for /"skip=%PASS%tokens=*" %%i in (%1) do set DOTHIS=%%i&& goto doit
      :doone
      call:counterReInit
      for /"tokens=*" %%i in (%1) do call:counterAdd
      for /"tokens=*" %%i in (%1) do set DOTHIS=%%i&& goto doit
      :alldo
      call:counterReInit
      for /"tokens=*" %%i in (%1) do call:counterAdd
      for /"tokens=*" %%i in (%1) do call %3 "%%i" %4 %5 %6 %7 %8 %9
      goto EXIT
      :doit
      call %3 "%DOTHIS%" %4 %5 %6 %7 %8 %9
      :EXIT
      set DOTHIS=
      set PASS=
      del %1
      goto EOF
      :show
      rem 仅仅type看不出条目改之
      rem
       type %1
      call:counterReInit
      for /"tokens=*" %%i in (%1) do call:counterAddShow "%%i"
      goto EOF

      :useage
      echo locate定位程序之辅助执行程序。
      echo      先locate搜索输出到文件(列表文件),再用本程序执行.
      echo      do {列表文件名} {指定行数(从1开始,all表示对所有:P慎用)} [调用程序 以及参数选项]
      echo      如果省略第二个参数之后(或为0)则显示列表文件内容。
      echo      如果有,调用程序。!只能!是将查找得到的文件作为,第!二!个参数。
      :EOF
      set test=
      if exist re.txt goto clean
      goto TRUEOUT
      :clean
      del re.txt
      goto EOF

      :TRUEOUT

       

      fastdo.bat

       

      @echo off
      if {%1}=={} goto use
      if {%1}=={/?} goto use
      if {%1}=={--h} goto use
      if {%1}=={/goto tar
      if /I {%2}=={/i} goto lit
      call locate %1 >re.txt && call do re.txt %2 %3 %4 %5 %6 %7 %8 %9
      goto EOF
      :lit
      call locate %1 %2 >re.txt && call do re.txt %3 %4 %5 %6 %7 %8 %9
      goto EOF
      :tar
      if {%4}=={/i} goto tarlit
      call locate %1 %2 %3 >re.txt && call do re.txt %4 %5 %6 %7 %8 %9
      goto EOF
      :tarlit
      call locate %1 %2 %3 %4 >re.txt && call do re.txt %5 %6 %7 %8 %9
      goto EOF
      :use
      echo locate 以及 do 调用封装
      echo    用于快速查找并且执行文件
      echo       作者:suxiaojack 2006.12
      echo 使用方法:
      echo         fastdo {locate参数部分} [do参数部分]
      echo     各部分参数详细情况参考该程序本身。
      :EOF

       

      lfastdo.bat

       

      @echo off
      rem local find for locate.bat
      rem
       because 'locate / .' sometimes could be wrong typing.

      if {%1}=={} goto usage
      if {%1}=={/?} goto useage
      if {%1}=={--help} goto useage
      if {%1}=={/update} goto update
      if {%1}=={/delgoto del
      :find
      rem 此处用fastdo即可
      call fastdo / . %1 %2 %3 %4 %5 %6 %7 %8 %9
      goto EOF
      :usage
      (echo suxiaojack writted in 2007.10.3
      echo.
      echo usage:
      echo.
      echo "%0 [/update|/del] | <mayfilename> [/i|/I] "
      echo.
      echo     /update is locate / .
      echo     /del is locate /del .
      echo     other is locate / . mayfilename [option]
      echo.)
      goto EOF

      :update
      call locate / .
      goto EOF

      :del
      call locate /del .
      goto EOF

      :EOF

       

      采用fastdo somefile 1 notepad
      就可以用notepad打开第一个查找到的文件,用all替换就能处理所有的文件.
      lfastdo是对当前目录的数据库处理。

      将4个脚本文件保存到windows目录下使用。

      发表于 @ 2007年11月16日 07:27:00|评论(loading...)|编辑

      新一篇: 拨号类网络链接监控windows脚本 | 旧一篇: 用IceSword注册Sandboxie V3.01

      评论:没有评论。

      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © suxiaojack