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

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

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

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

但我不知道 电脑有几个盘符,所以连盘符也要查找,有可能在F:\ABC

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
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

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

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 也就没有输出

TOP

回复 2# /zhqsystem/zhq


    这个找不到,变量也没有值

TOP

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

TOP

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

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

TOP

回复 4# lovealei

把C d e f 后边填全,一直到z,如果还没有就是所有都没有是abc的文件夹
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

已经解决了,谢谢大家

TOP

返回列表