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

[文件操作] 批处理怎样搜索所有盘符并删除指定名字的文件?

批处理搜索所有盘符指定文件(因为目标文件夹在每一台电脑所在盘符不一样),然后删除那个文件夹里面指定一个名字的.EXE(文件夹里面还有其他文件和exe)

之前写的看看对你有没有用
  1. @echo off&setlocal enabledelayedexpansion
  2. :main
  3. color 0c
  4. if not exist %tmp%\~found md %tmp%\~found||(
  5. cls&echo 文件夹创建失败,按任意键退出。&pause>nul&exit)
  6. echo.>%tmp%\~found\~t.t||(
  7. echo 目录不可用 [ %tmp%\~found\ ] &pause>nul&exit)
  8. set "file=0"&set "s="&set "e="&set "t="&set "k="&set "n="&set "d="&set "y="
  9. :return
  10. set "num=%random%"
  11. if exist %tmp%\~found\found_%num%.log (echo 发现同名文件[found_%num%.log],正在更换,如长时间未能成功请清理文件夹 [%tmp%\~found] 。&title 发现同名文件[found_%num%.log],正在更换可用文件。&cls&goto:return)
  12. cls
  13. title 全盘查找。
  14. set "var="
  15. echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
  16. call:_colstr 0f:"要查找的文件 [需添加文件扩展名,如查找同类文件可使用通配符]";\t
  17. echo *.*
  18. echo.
  19. call:_colstr 0e:"禁止输入以下等特殊符号:"
  20. echo [ ^| / \^" ^< ^> ? : * ]
  21. echo.
  22. call:_colstr 08:"%num%";0a:"在这里输入需要查找的文件:"
  23. del /f /s /q %tmp%\~found\~tmp>nul 2>nul
  24. set /p "var="
  25. echo %var%|find /i "*." >nul && set "int=同类" || set "int=指定"
  26. echo %var%|find /i " " >nul && (echo.&echo 值不能为空或输入的字符串内含有空格,输入 [ /help ] 获取帮助。&pause>nul&goto:main)
  27. if "%var%"=="/del*" (goto:_delet) else (if "%var%"=="/help" (goto help) else (if "%var%"=="<" (goto:main) else (if "%var%"==">" (goto:main) else (if "%var%"=="|" (goto:main) else (if "%var%"=="*" (goto:main) else (if "%var%"==":" (goto:main) else (if "%var%"=="/" (goto:main) else (if "%var%"=="\" (goto:main) else (if "%var%"=="?" (goto:main) else (if "%var%"=="/exit" (exit)))))))))))
  28. call:k
  29. color 00
  30. title 正在查找%var%中... ...
  31. set "#time=:::::::::::::::::::: %date% / %time% Start ::::::::::::::::::::"
  32. echo.
  33. color 07&echo 正在全盘查找%int%文件 [ %var% ]
  34. echo.
  35. for %%a in (A B 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 (
  36. if exist %%a:\ (
  37. cd /d %%a:\
  38. for /f "delims=" %%b in ('dir /s /a-d /b "%var%" 2^>nul') do (
  39. set /a "file+=1"
  40. if exist "%%b" (
  41. echo %%~zb^|"%%b">>%tmp%\~found\data_%num%.log))))
  42. >"%tmp%\t.t" echo;var list=WSH.StdIn.ReadAll().replace(/^^\s*^|\s*$/g,'').split(/[\r\n]+/);
  43. >>"%tmp%\t.t" echo;list.sort(function(a,b){return Number(b.split('^|')[0])-Number(a.split('^|')[0])});
  44. >>"%tmp%\t.t" echo;for(var i=0;i^<list.length;i++){var line=list[i].split('^|');WSH.echo('文件已找到,大小为['+getsize(Number(line[0]))+'] ['+line[1]+']');}
  45. >>"%tmp%\t.t" echo;function getsize(s){var size='';if(s^>=1073741824){size = (s/1073741824).toFixed(2) + 'GB';}else if(s^>=1048576){size = (s/1048576).toFixed(2) + 'MB';}else if(s^>=1024){size = (s/1024).toFixed(2) + 'KB';}else {size = s + 'B';};return size;}
  46. pushd %tmp%\~found
  47. call:k
  48. set/a D=D2-D1,K=K2-K1
  49. if %K% leq 0 set/a K+=8640000,D-=1
  50. if %D% leq 0 (set "s=%K%0毫秒")else set "s=%D%天%K%0毫秒"
  51. call:writet&(
  52. echo.
  53. echo %#time%
  54. echo.
  55. echo 查找%int%文件 [ %var% ],共找到 [ %file% ] 个文件,耗时 [ %s% ] 。
  56. echo.
  57. )>found_%num%.log
  58. call:writet&type data_%num%.log|cscript -nologo -e:jscript "%tmp%\t.t">>found_%num%.log
  59. call:writet&echo.>>found_%num%.log
  60. call:writet&find "文件已找到" found_%num%.log >nul||(
  61. echo 没有找到任何文件,输入 [ /help ] 获取帮助。
  62. echo.
  63. )>>found_%num%.log
  64. call:writet&echo ::::::::::::::::::: %date% / %time% Finished :::::::::::::::::::>>found_%num%.log
  65. title 共找到 [ %file% ] 个文件,耗时 [ %s% ] 已生成文本报告。
  66. call:writet&type %tmp%\~found\found_%num%.log&color 0f
  67. echo.
  68. call:_colstr 0e:"正在拷贝路径至粘贴板,请稍后。";\n;&mshta vbscript:clipboarddata.setdata("text","%tmp%\~found\found_%num%.log")(close)
  69. echo.
  70. call:_colstr 查找完毕,共找到;\t;[;\t;0a:"%file%";\t;];\t;个文件,耗时;\t;[;\t;0a:"%s%";\t;];\t;0f:"已生成文本报告。";\n;
  71. echo.
  72. call:_colstr 路径;\t;[ "%tmp%\~found\found_%num%.log" ];\t;0e:"已复制。";\n;
  73. echo.&echo.
  74. call:_colstr \t;\t;\t;\t;\t;\t;\t;\t;\t;\t;\t;\t;\t;\t;J;0b:"e";0e:"ff";0f:"r";0a:"e";0d:"y";06:"2";05:"9";04:"7";03:"1";f8:"@outlook.com";\t;\t;
  75. echo.&echo.&pause>nul
  76. call:_colstr 0e:"正在清理粘贴板,请稍后。";&mshta.exe "javascript:clipboardData.clearData();close();"
  77. popd&goto:main
  78. :help
  79. title 帮助。
  80. cls&echo.
  81. call:_colstr 0e:"正在计算相关数据,请稍后。";\n;
  82. set "cnt=0"&set "f="&set "d="
  83. for /f "delims=" %%i in ('dir/b/a-d "%tmp%\~found\*.log" 2^>nul') do set /a "cnt+=1"
  84. for /f "tokens=3 delims= " %%i in ('dir /s /a /-c "%tmp%\~found" ^|findstr 个文件') do (set f=%%i)
  85. if %f% gtr 1024 (set /a "f>>=10"&set "d=KB"&set "cl=0a")
  86. if %f% gtr 1024 (set /a "f>>=10"&set "d=MB"&set "cl=0e")
  87. if %f% gtr 1024 (set /a "f>>=10"&set "d=GB"&set "cl=0c")
  88. if not defined d (set "d=bytes"&set "cl=0a")
  89. cls
  90. echo.&echo.&echo.
  91. call:_colstr 0e:"禁止输入以下等特殊符号:"
  92. echo [ ^| / \^" ^< ^> ? : * ]
  93. echo.
  94. call:_colstr 0f:"查找时输入尽量正确的";0e:"文件名";+;0e:"扩展名";0f:"如";0f:"[";0a:"文件.exe";0f:"]";\n;
  95. echo.
  96. call:_colstr 0f:"如需查找同类文件如图片" [ *.png/*.jpg ] ;0f:"可使用";0e:"通配符" 0f:"["; * ;0f:"]" . ;0f:"[" 文件扩展名 ;0f:"]";\n
  97. echo.
  98. call:_colstr 0f:"共找到";\t;0f:"[";\t;0a:"%cnt%";\t;0f:"]";\t;0f:"个报告文件,总大小约为";\t;0f:"[";\t;%cl%:"%f%%d%";\t;0f:"]";\t; ;0f:"如需删除可在界面输入";\t;/del*;\n
  99. echo.
  100. call:_colstr 0f:"文件大小参考";\t;0f:"[";\t;0a:"bytes---极小";\t;0f:"]";\t;0f:"[";\t;0a:"Kb---小";\t;0f:"]";\t;0f:"[";\t;0e:"Mb---较小";\t;0f:"]";\t;0f:"[";\t;0c:"Gb---较大";\t;0f:"]";\n
  101. echo.
  102. call:_colstr 0e:"正在拷贝路径至粘贴板,请稍后。";\n;&mshta vbscript:clipboarddata.setdata("text","%tmp%\~found")(close)
  103. echo.
  104. call:_colstr 0f:"文件记录位于";\t;0f:"[";\t;%tmp%\~found;\t;0f:"]";\t;0f:"格式为";\t;*.log;\t;0e:"已复制。";\n;
  105. echo.&echo.
  106. call:_colstr 0f:"如需额外帮助请联系邮箱:";J;0b:"e";0e:"ff";0f:"r";0a:"e";0d:"y";06:"2";05:"9";04:"7";03:"1";f8:"@outlook.com";\t;\t;\t;\t;0f:"联系微信:";J;0b:"e";0e:"ff";0f:"r";0a:"e";0d:"y";06:"2";05:"9";04:"7";03:"1";\n;
  107. echo.&echo.&echo.&echo 按任意键返回。&echo.
  108. echo.&pause>nul
  109. call:_colstr 0e:"正在清理粘贴板,请稍后。";\n;&echo.&mshta.exe "javascript:clipboardData.clearData();close();"
  110. goto:main
  111. rem /*--------- colstr 函数 -------------
  112. rem /*\?"<:>|
  113. :_colstr [^<colorcode^>:"<color str>"^|"<common str>"^|^<escape Char^>];...
  114. if not exist %tmp%\~found\~tmp md %tmp%\~found\~tmp||(
  115. echo 文件夹创建失败,按任意键退出。&pause>nul&exit
  116. )
  117. pushd %tmp%\~found\~tmp 2>nul||(
  118. echo 目录不可用 [ %tmp%\~found\~tmp\ ] &pause>nul&exit
  119. )
  120. for /f "tokens=1* delims=:" %%a in ("%~1")do (
  121. if %%a:%%b.==%%a:"%%~b". (set col=%%a
  122. for %%z in ("LBlue=9";"LGreen=A";"LAqua=B";"LRed=C";"LPurple=D";
  123. "LYellow=E";"LWhite=F";"Black=0";"Blue=1";"Green=2";
  124. "Aqua=3";"Red=4";"Purple=5";"Yellow=6";"White=7";"Gray=8";
  125. )do set col=!col:%%~z!
  126. if exist "%%~b?" del/a/q "%%~b?"2>nul
  127. set/p= <nul>"%%~b"2>nul&findstr/a:!col! .* "%%~b?"2>nul 3>&2
  128. ) else if %1==\n (echo.
  129. ) else if %1==\b (set/p=<nul
  130. ) else if %1==\q (set/p=""^"<nul
  131. ) else if %1==\t (set/p= <nul &rem 注意=后面不是空格,是制表符
  132. ) else (set/p"=%~1"<nul)
  133. )&(if %2. neq . (shift&endlocal&popd&goto:_colstr))
  134. rem ------------------------------------*/
  135. :writet
  136. echo.>%tmp%\~found\~t.t||(
  137. echo 写入文件失败,按任意键退出。&pause>nul&exit
  138. )
  139. goto:eof
  140. :_delet
  141. echo.
  142. call:_colstr 0e:"请注意,这个操作将会删除以下目录所有为";\t;*.log;\t;0e:"的文件记录报告";\n;
  143. :again
  144. echo.&call:_colstr 0f:"[";\t;%tmp%\~found\*.log;\t;0f:"]";\t;\t;&set /p "cho=y/n?"
  145. if "%cho%"=="y" (call:_cho_y&set "cho="&goto:main) else (if "%cho%"=="n" (set "cho="&goto:main))
  146. set "cho="&goto:again
  147. :_cho_y
  148. title 正在执行删除操作,请稍后。&echo.&echo 正在执行删除操作,请稍后。
  149. pushd %tmp%\~found\
  150. set "w=0"&set "ds=0"&set "d="
  151. for /f "delims=" %%i in ('dir /b/s *.log') do (set /a w=!w!+1
  152. del /q/f "%%i"
  153. set /a ds=!ds!+%%~zi
  154. )
  155. if %ds% gtr 1024 (set /a "ds>>=10"&set "d=KB"&set "cl=0a")
  156. if %ds% gtr 1024 (set /a "ds>>=10"&set "d=MB"&set "cl=0e")
  157. if %ds% gtr 1024 (set /a "ds>>=10"&set "d=GB"&set "cl=0c")
  158. if not defined d (set "ds=不到1Kb"&set "cl=0a")
  159. popd
  160. echo.
  161. call:_colstr 0f:"共删除了";\t;0f:"[";\t;0a:"%w%";\t;0f:"]";\t;0f:"个文件,总大小约为";\t;0f:"[";\t;%cl%:"%ds%%d%";\t;0f:"]";\t;\n;
  162. echo.&echo.&echo.&echo 按任意键返回。&echo.&pause>nul&goto:eof
  163. :k
  164. set "E=%date%"&set "T=%time%"&set "K=%time:~0,2%"&set/a "N+=1"
  165. set/a D%N%=1%E:~8,2%%%100,M=1%E:~5,2%%%100-1,Y=%E:~0,4%,"K%N%=%K: =%*360000+(1%T:~3,2%-100)*6000+(1%T:~6,2%-100)*100+1%T:~9,2%-100"
  166. for /l %%a in (1,1,%M%) do set/a "K=^!(%%a-4)|^!(%%a-6)|^!(%%a-9)|^!(%%a-11)","D%N%+=^!(%%a-2)*(28+^!((^!(Y%%4)&^!^!(Y%%100))|^!(Y%%400)))+K*30+(^!^!(%%a-2)&^!K)*31"
  167. set/a D%N%+=(Y-1)*365+Y/4-Y/100+Y/400
  168. goto:eof
复制代码

TOP

回复 1# sudugun


http://bbs.bathome.net/thread-3465-1-1.html
先试试这个帖子里面哪个代码可以搜索到你指定的文件,然后加个 del 命令就能删除文件了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表