[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎么快速搜索文件但不太多影响系统?

高手们:
  大家好,我已经上传了我多日来的继续,家底都漏光了,就这么点能力,而且都是在这个论坛上学的,至于更高的,在我写的应用这方面,我实在觉得到了死胡同,希望高手拨个豁,我期待这我的武术能更高一层
    好!苦于寻找TF卡上藏的歌曲,不想用系统自带的
  经常用
  1.    for /d  /r h: %%i in (*游戏*) do ren "%%i" 娱乐
  2.    for /r "h:\歌曲" %%i in (*第一场雪*) do del /q "%%i"
复制代码
后来用排除部分目录
如:
  1. dir /ad-s-h /b h:|findstr /v "雪山飞狐"|findstr /v "轩辕"|findstr /v "修真">>d:mulu.txt
  2. for /f "delims=" %%i in (d:mulu.txt) do (
  3. for /d  /r "h:\%%i" %%j in (*妹妹*) do (
  4. ren "%%j" 哥哥
  5. )
复制代码
(这个p 不知道为什么行不通)
我就这2下子,常常看P,也没找到,希望高手给我点你们宝贵的p经验
  这样操作非常耗内存,有简单有效的其他, 搜寻命令吗?
  特别是我喜欢看小说,下了很多小说,目录乱,经常删除,更改,移动,
  1. @echo off
  2. title 自动检测
  3. mode con: cols=40 lines=15
  4. setlocal enabledelayedexpansion
  5. set dr1=%cd%
  6. set dr2=%cd%\批处理临时文件夹
  7. if not exist 批处理临时文件夹 md 批处理临时文件夹
  8. cd /d %dr2%
  9. :again
  10. set num1=%num%
  11. for %%i in (I,J,K,L,M,N,O,P,Q,R ) do (
  12. set m%%i=                   %%i:不存在或者没插好
  13. )
  14. del /q lieb.txt 2>nul
  15. call :xiezc
  16. set /a num=0
  17. wmic logicaldisk where "drivetype=2" get caption|find ":">>lieb.txt
  18. for /f  "skip=1 delims=:"  %%a in (lieb.txt) do (     
  19.       set /a num+=1   
  20.       if exist "%%axie.txt" (
  21.       for %%i in (I,J,K,L,M,N,O,P,Q,R ) do (
  22.       if "%%a" == "%%i" set m%%a=!num! :%%a:复制完毕卸载中!
  23.       )
  24.       )
  25.       call :jiestix %%a
  26.       if exist %%a:k.txt (
  27.       for %%i in (I,J,K,L,M,N,O,P,Q,R) do (
  28.       if "%%a" == "%%i" set m%%a=!num! :%%a:还在检查中!
  29.       )
  30.       )
  31.       if exist "%%a:t.txt"  (
  32.       for %%i in (I,J,K,L,M,N,O,P,Q,R) do (
  33.       if "%%a" == "%%i" set m%%a=!num! :%%a:复制数据中,请留意!
  34.       )
  35.       )  
  36.       if exist "%%a:o.txt"  (
  37.       for %%i in (I,J,K,L,M,N,O,P,Q,R) do (
  38.       if "%%a" == "%%i" set m%%a=!num! :%%a:复制已经结束,请注意!
  39.       )
  40.       )
  41.       if not exist "%%a:o.txt" (
  42.       if not exist "%%a:t.txt" (
  43.       if not exist "%%axie.txt" (  
  44.            if not exist "%%a:k.txt" (set m%%a=!num! :%%a:符合盘,即将复制 & cd /d "%dr1%\批处理包" & start /b %%a.bat & cd /d %dr2% )
  45.                                 )
  46.                                 )
  47.                                 )
  48. )
  49. mode con: cols=40 lines=15
  50. color 0f
  51. echo         本次扫描共:!num!张卡
  52. echo         上次扫描共:%num1%张卡
  53. for %%i in (I,J,K,L,M,N,O,P,Q,R) do (echo !m%%i!)
  54. echo    稍后重新扫描,请留意盘情况变化
  55. set /p=10秒<nul
  56. for /l %%i in (3 -1 0) do (
  57. for /l %%j in (1 1 4) do (set /p=<nul)
  58. if %%i lss 10 (set /p=          0%%i秒<nul) else (set /p=          %%i秒<nul)
  59. title %%i 秒后重新扫描~
  60. ping 127.0.0.1 -n 2 >nul 2>nul
  61. )
  62. goto again
  63. goto :eof
  64. :xiez
  65. if exist "%1xie.txt" (
  66.       for %%i in ( I,J,K,L,M,N,O,P,Q,R ) do (
  67.       if "%1" == "%%i" set m%1=%1:复制完毕卸载中!
  68.       )
  69.       )
  70. goto :eof
  71. :xiezc
  72.       for %%i in (I,J,K,L,M,N,O,P,Q,R) do (
  73.       if exist "%%ixiecg.txt" del /q %%ixiecg.txt
  74.       )
  75. goto :eof
  76. :jiestix
  77. if exist "%1:o.txt" (
  78.       cls
  79.       mode con: cols=30 lines=3
  80.       echo %1复制完成!
  81.       set /p=5秒<nul
  82.       for /l %%i in (1 -1 0) do (
  83.       for /l %%j in (1 1 3) do (set /p=<nul)
  84.       set /p=%%i秒<nul
  85.       color %%if
  86.       title %%i 秒后提醒结束
  87.       ping 127.0.0.1 -n 2 >nul 2>nul
  88.       )
  89.       )
  90. goto :eof
复制代码

用start /b启动的代码是什么?贴出来看看是否存在影响效率的部分
BAT-VBS 发表于 2013-1-29 21:53

我本来是贴的,一看那么占网页不敢贴了,就改成TXT了

TOP

回复 18# BAT-VBS
聪明啊,我每次有CALL调用内部的,你用PUSHD ,我有个疑问,我一直觉得无论处理什么,尽量不在卡上大量扫描,甚至cd  /d 进入移动盘,我都会轻,浅,快,少地搜索下表层目录,赶紧退出,把目录存到电脑文档里,然后花费大量功夫解析后直接用DEL REN RD MD直接修改绝对路径,一减少对移动盘的伤害,现在的卡质量太坏,有好几次我把同事的卡P下,插上手机居然要格式化,插上电脑也的格式化,后来发现他们的卡有的是低速卡有的是垃圾卡,不经折腾,稍微批下,飞得格式化,我后来有手工处理,居然好了,我想是批大量读写他的卡,导致崩溃,所以才开始寻找高级的,以减少扫描,减少读写,特别是我现在用的复制命令:ROBOCOPY /S /PURGE 天啊,很方便,可惜他会扫描卡上的全部内容,虽然有镜像功能,省事可惜同事的卡都经不住考研啊

TOP

回复 16# BAT-VBS

哦我原本用XIEz程序标识复制完毕卸载中直到卸载掉这个空档的盘的状态
xiezc是用来删除留下到电脑盘里文件,本来是调用的程序在卸载后删除的,最后发现有时候,发现批处理错了,直接关闭了批,所以那个卸载文件还留在盘里,他留在盘里直接导致下个卡插上没反应,反而提示卸载中,所以就调用XIEZc每次删除那个判断卸载的文件,但这样有时会把正在卸载的盘重新调用批处理,重复处理,但因为正忙别的几乎忘记这个啦,因为他发生的几率小,居然让我给忘记了,调试的时候没出现问题,所以就留那里
     谢谢提醒帮我想个法子吧,有什么可以判断我调用的批被人为终止,这个我现在还没找到呢,有时候判断出来结果,发现不对赶紧关闭,甚至造成电脑重启,郁闷啊

TOP

回复 14# yu2n

也只有这样啦,其实我主要想求高手简化我的P,咳就这个目的,没别的
听说EVERYTHING搜索速度快,的原理是处理文件名,而不是处理文件,我就借鉴啦

TOP

回复  kzppp



给每个盘设置不同的卷标,根据卷标来判断可以吗?
HAT 发表于 2013-1-28 20:01

但还是不知到哪个读卡器装的是那个卷标的啊
关键是现实中看到电脑上卷标为“自己设置的”的卡,电脑上点击卸载后,现实中不知道去拔出哪个读卡器哦

TOP

回复 8# BAT-VBS
我马上将P复制张贴到这里,先上上主程序吧

TOP

回复 8# BAT-VBS

先做的是个主批:
           负责扫描移动盘
           查看反映每个盘的即时状态
          若是新插入的就调用另外的专门处理里面内容的批是下载完的就20秒提示卸载,20秒后自动卸载
          界面不大,要漂亮的彰显P的NX

TOP

回复 8# BAT-VBS
第一章:处理卡与读卡器
                                前言
   现在几乎至少有10个同事都挺喜欢这种生活方式,每人至少2-3张卡,大小1-

16G,我 们每天上完夜班,第一件事就是至少15张卡要等待处理,一次可处理7-8


                                背景
  该主批每隔30秒扫描一次所有的移动盘,发现有新插入的卡立即调用另外的批

处理来处理相关事务(至于其他批做什么处理,以后的章节会陆续亮相。。敬请

期待)
                                要求
  既然是主批要求界面漂亮大方不占空间,能反映每位卡得到的即时处理,以及

做好每位卡的善后工作,不能出错

                                始章
插上7张卡,批处理自动扫描并且做处理如下:
         1)每隔30秒扫描出所有盘付,并且列出每个卡的即时状态。比如:
               H:正在计算卡的总空间与卡的剩余空间
               I:正在判断是那种内容的卡(比如:言情,武侠。修真。。)
               j: 没有插好哦
               K: 正在修改MTV项目
               l:正在修改歌曲项目
               M: 修改完毕正在下载新内容
               n:下载完成,正在卸载
               o:卸载失败,正在尝试。。
               p:没有读卡器
            失败总结:卸载中的盘会重复调用
                                 末章
                                实际难处
    a:同时插好7张卡,开的批处理主程序,扫描只有5-6个,有1-2个没有插好

,无法判断出是哪个读卡器中的卡没有查好,害怕误拔!不是那个盘付哦,盘付

我判断的出来,就是不知道该盘付是那个读卡器的。这方面网上查了很久,有永

久把固定盘付绑定某个读卡器的方法,太麻烦,于是我展开想象:每个读卡器肯

定有不同的IP,用批识别出来并且绑定到某个盘付上,那样我就把盘付贴死到读

卡器上~
    b:还有就是没有插好卡的读卡器或者没插卡的读卡器,扫描总会弹出错误除

非拔掉读卡器,还有有的1G的卡,冲的比较快,冲完后,用P自动卸载,卸载后非

得拔掉读卡器,否则不拔卡就识别不出来,这方面也不知道WIN7系统怎么处理的

,系统右下角的弹出,无需拔掉读卡器,直接取出卡就行了。而且弹出后“我的

电脑”里面也没有该盘付了
    c:这方面的批很多需要管理员权限,每次点反键点击“以管理员身份运行”

才行
    d:卸载盘付用第3方软件remove,需要复制“removeEXE”到c盘系统目录下,

需要权限,直接用COPY 命令无法复制
                                 
                                  本章完 谢谢欣赏

TOP

回复 5# BAT-VBS


   具体的说来多啊,而且是活的。你就教我大体的思路吧,我要的就是
1:怎样快速处理文件,修改啊移动的,是PI哦,不是软件哦,
我的思路是,1不扫描文件,而是扫描文件夹,尽量少用for /r 而是换成FOR /D /R 自己想的不知道是否真快了,
                  2,尽量到电脑硬盘上分析数据,不要多次扫描移动盘,比如我会把FOR /D 扫描一下卡的第一层目录,然后>>到电脑。txt
   用FOR /F 仔细的分析啊,推敲啊,然后直接提取路径改名,是在不行了有些文件名还是与电脑模板不一致,就这样
findstr /v "不要的或者成功改过的"|刚才扫描的。txt>>第二次。txt
for /f  %%I IN 第二次.TXT(FOR /D /R D:\%%I  %%j IN (相关×) do (if %%j == "&^" ren × ×&del * * &rd /s /q * &move* *))
再太深的目录就只有用FOR /D /R H: IN (*) ()把它扫描出来在处理
                  3所有临时文件都在电脑上,随时删除
                  4.主要先处理文件夹的目录不管多深一定要和模板一致,然后在处理文件,只要是我喜欢的文件和大的电影MTV文件,因为重复冲或者误删耽误时间
                  5,把模板没有的文件移到一起
                  6.然后用ROBOCOPY /mir 镜像某些目录,/XD排除某些目录,然后在复制部分数据
2,一切自动化,一点不要让人去干预,去选择,我会设置大量变量去判断默写文件的存在与否 存在=1 不存在=0
实在重要的就留个CHOICE /T 20秒选者20秒后选个最佳的,也不需要人去处理
3,想设计复制内容的时间,有是别人等的不个着落
4.。。。
5‘’‘有待实际处理的有去发现

TOP

回复 5# BAT-VBS
1:首先,我每次插上卡到电脑上,批处理程序自动检测我的盘符,过滤电脑硬盘包括U盘,光驱,还有笔记本自带的读卡盘符,这个要求我是用的wmic命令提取到的,到现在还有个致命缺陷,就是我用的是带数据显示的读卡器,传送数据闪动卸载盘符后不显示,用系统卸载后灭了而且不用拔出读卡器,继续插卡支持使用,可惜用P的romove工具一处盘后1:插卡后无效,非得拔掉后重新插好麻烦 :2那个我设计的P,20秒扫描一次,移除卡后不拔出TF卡,扫描弹出框 3:最重要的是我无法知道我的H盘是装载哪个读卡器,每次处理非得等到所有的处理完了才敢拔出,现在还没处理了
2:计算移动盘的大小,我有多张卡,1张8G,2张4G,1张2G, 1张1G,用P识别大小后,进入下部识别内容
3:识别卡内内容
没张卡内装的小说内容不一样,如:言情,爱情,浪漫,伦理。。。等等大量小说,呵呵是上夜班没事做下的,情一类的还有大量的类别歌曲,电影,MTV在一张卡上
武侠,修真,玄幻。。英雄系列,包括这类电影歌曲,mtv在一张卡上,以后打算买几张16G的CLASS10卡,电影,mtv舍不的删除,时间长了腻了就挪到电脑上了
高调的歌曲,有劲的DJ,电影mtv又是一张卡
低调的,温柔的。。。。又在一种卡,每天上夜班,电脑彻夜开着下载排行榜的歌曲小说mtv以度过漫长的第二夜。。。呵呵,上班族懂的
4,我回家做的是就是插上几张卡,懒得一个一个看,上夜班的朋友懂的,很累,不想多操心,只想点下鼠标自动处理,等我洗完澡一切都处理的漂漂亮亮,其实我不光为我自己,有很多同事也想这样,所以我决定肩负起这个使命,一定要完成,以前上过技校,懂点C++,使用选择批处理
5,所有的资料我电脑上有,每次电脑是个模板,批要判断,卡的大小,内容,卡上的内容优势和电脑不一样,因为我上班时,看到别人的好就复制到卡上,优势我要在手机上修改目录的名字啊,移动目录的某些文件啊,等造成和电脑模板不一样啦,批需要判断内容而不是目录名字,然后修改目录名,把同类的移动到一起,歌曲给歌曲,小说给小说,然后在用ROBOCOPY命令复制新文件到卡上,前提是卡上的目录路径必须和电脑模板一致,否则会重复重
6,判断卡上的内容,然后修改目录路径和电脑一致,这个我现在还烦,你知道吗?搜索8G的电影内容电脑不卡,速度快。搜索100M的电子书,天啊,卡的厉害,速度慢啊,同时插上6张卡,有我的,几个同事的,呵呵我都成了为他们服务的的啦,反正电脑卡,我用的命令是FOR /D /R和FOR /R分别处理文件夹和文件,嗨,不想看他处理,想点下去洗澡
7,最麻烦的事,就是冲完了的卡不知道插在哪个读卡器上,不想搞个本本画,我现在就是老办法,高张纸写盘符,生怕拔错 了
你好,现在都快半夜2点了,你都睡熟了吧,我看到你想帮我,高兴死了,找了好久,觉得批处理的功能仿佛到了尽头一样,在这个论坛上匿名了很久,不得已,注册个号,发发贴,请高手帮忙,给我个思路也行,我的到镜头了,
我想休息会,不屑了,本来想仔细改下错别字,算了,你请原谅吧,只要意思明白就好我会天天来关注我的贴的,麻烦你了

TOP

回复 3# BAT-VBS

局限性太多,我想要批,能自动改名,移动。删除,他只是找到,而且仅NF系统

TOP

缺个),不是什么大问题,关键是我就这么点墨水

TOP

返回列表