找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25837|回复: 7

[系统相关] 如何用批处理查找指定文件夹,并把路径赋给变量

[复制链接]
发表于 2018-2-1 16:17:18 | 显示全部楼层 |阅读模式
如何用批处理查找指定文件夹,并把路径赋给变量

比如我要在H盘找到ABC这个文件夹,并把H:\ABC赋给变量A

但我不知道 电脑有几个盘符,所以连盘符也要查找,有可能在F:\ABC
发表于 2018-2-1 19:11:33 | 显示全部楼层
for %%n in (c d e f )do if exist %%n:\ for /f "delims=" %%i in ('dir/ad/s/b "%%n:\*abc*"')do if /i "%%~nxi"=="abc" (
set a=
set "a=%%~fi"
call :1
)
pause
exit
:1
echo,%a%
goto:eof
 楼主| 发表于 2018-2-2 10:51:35 | 显示全部楼层

为什么我列举了盘符后不能赋值给变量呢?

echo 移动磁盘:
for %%a in (E F G H I J K L M N O P Q R S T U V W X Y Z) do (fsutil fsinfo drivetype %%a: | find "可移动">nul && (set "aa=%%a"

echo %aa%)
)

pause
exit

这样没有赋值给aa 也就没有输出
 楼主| 发表于 2018-2-2 10:56:17 | 显示全部楼层
回复 2# /zhqsystem/zhq


    这个找不到,变量也没有值
发表于 2018-2-2 11:25:09 | 显示全部楼层
for %%a in (E F G H I J K L M N O P Q R S T U V W X Y Z) do (fsutil fsinfo drivetype %%a: | find "可移动">nul && echo %%a
发表于 2018-2-2 16:50:47 | 显示全部楼层
本帖最后由 yhcfsr 于 2018-2-2 16:53 编辑

回复 3# lovealei
去论坛教程贴里看下第一个帖子关于FOR的应用,你就明白为什么么这样写没有输出。
简单来说,这涉及变量延迟,复合语句中创建和修改的变量,要想在复合语句中生效,你得引入变量延迟扩展。
不引入变量延迟扩展,可以把do后面所有的括号去掉就能显示结果。
发表于 2018-2-2 18:17:29 | 显示全部楼层
回复 4# lovealei

把C d e f 后边填全,一直到z,如果还没有就是所有都没有是abc的文件夹
 楼主| 发表于 2018-2-5 15:46:06 | 显示全部楼层
已经解决了,谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:53 , Processed in 0.017981 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表