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

[文件操作] 如何用批处理搜索文件夹,并显示出该文件夹路径?

比如说我的I386文件夹是在c:\aaa\bbb\i386下,请问一下如果才能用批处理搜索出这个文件夹,并显示出路径呢?


比如I386是在c:\aaa\bbb下,或者是在d:\ccc下,都可以用这个批处理文件找到I386文件夹,并把路径显示出来。


我目前只会用这种方法来搜索I386文件夹,但是这个方法必须要指定多级目录的位置才行,不太方便。麻烦大家帮忙把这个批处理改成我想要的那种,谢谢!

  1. @echo off
  2. set TargetPath=\aaa\bbb\I386
  3. for %%a 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 (
  4. if exist "%%a:%TargetPath%" (set NeededPath=%%a:%TargetPath%)
  5. )
  6. echo !NeededPath!
  7. pause
复制代码

[ 本帖最后由 zcy85611 于 2009-11-29 10:54 编辑 ]

原帖由 Seter 于 2009-11-29 10:29 发表
@echo off
for %%j in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
if exist %%j:\nul (
for /f "delims=" %%i in ('dir %%j:\i386 /a-d /b /s /a 2^>nul') do echo %%i
)
)
pause是这个意思 ...


这位朋友,不好意思,是我没有描述清楚,是这样的

我是意思是说无论i386在哪个盘的哪一级目录下,都可以用批处理搜索出I386文件夹,并显示出它的路径
比如I386是在c:\aaa\bbb下,或者是在d:\ccc下,都可以用这个批处理文件找到I386文件夹,并把路径显示出来。

TOP

原帖由 Seter 于 2009-11-29 10:29 发表
@echo off
for %%j in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
if exist %%j:\nul (
for /f "delims=" %%i in ('dir %%j:\i386 /a-d /b /s /a 2^>nul') do echo %%i
)
)
pause是这个意思 ...


Seter,你好,你的这个程序我试过了,非常好,但是我有一些代码不太理解,想请教一下你

dir %%j:\i386 /a-d /b /s /a 这一段里面,我试着去掉了/a-d,/s,/a中的任意一个,结果都会导致这个程序找不到我要的文件夹,/s /a我能理解,但是/a-d是什么意思呢?

再就是 dir c:\i386  为什么这样写,就可以找到c盘下所有包含i386文件夹的文件夹呢?

麻烦Seter解答一下,谢谢!

TOP

原帖由 bluewing009 于 2009-11-29 10:48 发表
这种网吧里的路径都不一样 ,所以我写了这个,更广泛一点。
可以针对普通要求的搜索。嘿嘿  直接把例子发上来了,  有必要的话就改改。@echo off
setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fs ...


这位朋友的代码我试过了,也是可以的,还学到了一个新的用法 fsutil fsinfo drives^|find /v "" ,感谢你的回答

TOP

原帖由 Batcher 于 2009-12-12 00:33 发表
/a-d的意思是排除文件夹,参考帮助文档:

  /A          Displays files with specified attributes.
  attributes   D  Directories                R  Read-only files
               H  Hidden files       ...


Batcher你好,这个文档我看过了,但是我还是不太理解为什么

dir %%j:\i386 /a-d /b /s /a

这样一段代码就能达到我想要的效果

前面有一段/a-d 排除掉目录,后面又有一个/a把所有的类型都包含进去,不是有一点前后矛盾的感觉吗?麻烦大家帮我解答一下,谢谢

TOP

返回列表