Board logo

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

作者: lovealei    时间: 2018-2-1 16:17     标题: 如何用批处理查找指定文件夹,并把路径赋给变量

如何用批处理查找指定文件夹,并把路径赋给变量

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

但我不知道 电脑有几个盘符,所以连盘符也要查找,有可能在F:\ABC
作者: /zhqsystem/zhq    时间: 2018-2-1 19:11

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
作者: lovealei    时间: 2018-2-2 10:51     标题: 为什么我列举了盘符后不能赋值给变量呢?

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 也就没有输出
作者: lovealei    时间: 2018-2-2 10:56

回复 2# /zhqsystem/zhq


    这个找不到,变量也没有值
作者: ai20110304    时间: 2018-2-2 11:25

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
作者: yhcfsr    时间: 2018-2-2 16:50

本帖最后由 yhcfsr 于 2018-2-2 16:53 编辑

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

回复 4# lovealei

把C d e f 后边填全,一直到z,如果还没有就是所有都没有是abc的文件夹
作者: lovealei    时间: 2018-2-5 15:46

已经解决了,谢谢大家




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