无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2992|回复: 1
打印 上一主题 下一主题

批处理变量问题?

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-11 09:15:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学批处理弄不明白以下问题:
第三个for中的!vol!好像无法接收%%b的值,怎样才能使%%b的值赋予!vol!  ??

@echo off
SetLocal EnableDelayedExpansion
for /f %%a in ('mountvol ^|find ":\"') do (
for /f %%b in ('fsutil fsinfo drivetype %%a ^|find "固定"') do (
set vol=%%b
for /r !vol! %%i in (*) do (
echo %%i
)
)
)
pause

变通了一下脚本,问题解决了。

[ 本帖最后由 FLOPPY 于 2011-4-11 14:08 编辑 ]
2#
发表于 2011-4-12 19:10:20 | 只看该作者
原帖由 FLOPPY 于 2011-4-11 09:15 发表
初学批处理弄不明白以下问题:
第三个for中的!vol!好像无法接收%%b的值,怎样才能使%%b的值赋予!vol!  ??

改成下面的代码可变相传递。一点经验:平时最好不要用变量延迟,可用call替代。for /r 也完全可用for /f替代不存在哪个效率高的问题。

@echo off
for /f %%a in ('mountvol ^|find ":\"') do (
for /f %%b in ('fsutil fsinfo drivetype %%a ^|find "固定"') do (
pushd %%b
for /r . %%i in (*) do (
echo %%i
)))
pause
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-12 16:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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