Board logo

标题: [文本处理] 批处理如何搜索所有磁盘包含u盘及光盘根目录下的文件夹并返回绝对路径? [打印本页]

作者: xintiandi    时间: 2021-8-1 15:47     标题: 批处理如何搜索所有磁盘包含u盘及光盘根目录下的文件夹并返回绝对路径?

请教如何搜索所有磁盘包含u盘及光盘根目录下的2个文件夹,并返回绝对路径。不知道我叙述的是否清楚,就是说只搜寻一次分区的根目录下的文件夹,但是要指定2个文件夹的名称,搜到后要返回绝对路径并显示在屏幕上。二级目录可能也存在同名文件夹,但要忽略。高人指点一下,之前试了一下,可以搜到文件名但是只能一个,第二个就退出不继续了。
作者: idwma    时间: 2021-8-1 18:01

@echo off
for /f "skip=1" %%i in ('wmic logicaldisk get deviceid') do (
if not "%%i"=="" forfiles /p %%i\ /c "cmd /c if @isdir==FALSE echo @path"
)|findstr /i "111 222"
pause
作者: xintiandi    时间: 2021-8-2 23:28

本帖最后由 xintiandi 于 2021-8-2 23:29 编辑

回复 2# idwma


    我试了,不行,是不是需要wmic服务启用才行哦。
   我在网上找了一段代码可以,但是有时搜索过程有点长,我的电脑有多个硬盘。不知道有没有更高级的,其实我只需要搜寻一级目录,下面的代码要搜寻子目录,我不知道怎么搜目录,只有在需要的目录中分别建了一个空文件来定位。
@echo off
rem 全盘搜索/查找指定名称的文件
title 开始搜索.....
for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
if exist %%a:\ (
echo;%%a: searching……
pushd %%a:\
for /f "delims=" %%b in ('dir /a-d-h/b/s "imdisk.txt" "isos.txt" 2^>nul') do echo;%%b
popd
)
)
echo;搜索完毕!
pause
作者: idwma    时间: 2021-8-4 13:39

回复 3# xintiandi


    里面的dir /s去掉就可以了
作者: cmd1152    时间: 2021-8-4 13:50

回复 3# xintiandi


    去掉/S就好
  /S          显示指定目录和所有子目录中的文件。

    代码:
  1. @echo off
  2. rem 全盘搜索/查找指定名称的文件
  3. title 开始搜索.....
  4. for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D C) do (
  5. if exist %%a:\ (
  6. echo;%%a: searching……
  7. pushd %%a:\
  8. for /f "delims=" %%b in ('dir /a-d-h/b "imdisk.txt" "isos.txt" 2^>nul') do echo;%%b
  9. popd
  10. )
  11. )
  12. echo;搜索完毕!
  13. pause
复制代码

作者: Batcher    时间: 2021-8-5 22:08

回复 3# xintiandi


WMIC是系统默认自带的命令,请参考Q-01观察一下详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: xintiandi    时间: 2021-8-12 21:48

回复 4# idwma


    谢谢。
作者: xintiandi    时间: 2021-8-12 21:49

回复 5# cmd1152


    非常感谢。
作者: xintiandi    时间: 2021-8-12 21:50

回复 6# Batcher


    谢谢,没有想到一个小小的问题,还是很多热心的朋友都来回复。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2