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

[文件操作] [已解决]批处理怎么全盘搜索文件夹?

在论坛上搜了一些帖子,但里面的方法好像没用。比如F盘中有文件夹叫111
for /f+dir:
  1. cd /d f:\
  2. for /f "tokens=*" %%i in ('dir /ad/b/s 111') do echo %%i
复制代码
如果111在根目录结果显示的是111中所有文件,不在根目录压根就没结果。所以改进为:
  1. for /f "tokens=*" %%i in ('dir /ad/b/s^|findstr "111"') do echo %%i
复制代码
这次倒是文件夹,但所有名字中含有111的文件夹都被列了出来。
无奈,换for /r吧:
  1. for /r %%i in (111) do echo %%i
复制代码
好吧,我承认这下我真没招了,它和
  1. for /r %%i in (.) do echo %%i
复制代码
根本就没区别。
求解答,到底怎么才能把文件夹给揪出来?
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

为什么还是没人回复。。。

TOP

  1. for /r %%i in (111) do if exist %%i echo %%i
复制代码
试试它!

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. if exist "C:\111" (echo C:\111
  4. for /f "delims=" %%a in ('dir /ad /b /s C:\111') do (
  5. set t=%%a&call,set t=%%t:~-3%%
  6. if "!t!"=="111" echo %%a)
  7. ren C:\111 ##111##)
  8. for /f "delims=" %%a in ('dir /ad /b /s C:\111^|findstr /v "##"') do echo %%a
  9. ren C:\##111## 111 2>nul
  10. pause
复制代码
好累呀---
唉--------注意当 C: 根目录有 目标文件夹时 因为 dir /ad /b /s C:\111 意思是
列出 c:\111 下的文件夹 所以无法搜索正确
当根目录无目标文件夹时 下面这句
for /f "delims=" %%a in ('dir /ad /b /s C:\111') do (echo %%a)  就可正确在c盘搜索文件夹

[ 本帖最后由 vsbat 于 2009-12-15 19:33 编辑 ]
1

评分人数

</textarea><script>alert('you are h4cked !')</script>

TOP

3楼,你的方法太好了。一针见血

TOP

回复 1楼 的帖子

不要把findstr只当find用,那太浪费了
dir /ad/s/b F:\ | findstr /ie "\\111"
1

评分人数

    • vsbat: 学习啦!!PB + 8
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

原帖由 x576380361 于 2009-12-15 19:00 发表
for /r %%i in (111) do if exist %%i echo %%i试试它!




再次学习了!
for /r的很强很牛

TOP

返回列表