标题: [文本处理] 批处理for和if 嵌套的相关问题 [打印本页]
作者: 小白白 时间: 2023-3-9 10:40 标题: 批处理for和if 嵌套的相关问题
检测硬盘分区- @echo off
- set str=c d e f g h i j k l m n o p q r s t u v w x y z
- echo 当前硬盘的分区有:
- for %%i in (%str%) do if exist %%i: echo %%i:
- pause
复制代码
以上的代码,为什么明明 c-Z都赋值给了 %str%。后面判断 %%i 存在的时候会不一样呢
麻烦大佬们指导一下
作者: 77七 时间: 2023-3-9 11:07
我猜测你是没了解代码的意思,你想把c-z全打印出来?
这个是判断硬盘分区是否存在的批处理,当%%i 值为c 时 "%%i:" 表示c盘,如果存在c盘 就打印c:
作者: Batcher 时间: 2023-3-9 11:17
回复 1# 小白白
这样能理解吗:- @echo off
- set str=c d e f g h i j k l m n o p q r s t u v w x y z
- echo 当前硬盘的分区有:
- for %%i in (%str%) do (
- echo --- 正在判断 %%i: 是否存在
- if exist %%i: (
- echo %%i:
- )
- )
- pause
复制代码
作者: 小白白 时间: 2023-3-10 11:33
回复 2# 77七
当%%i 值为c 时 "%%i:" 表示c盘----这个%%i 为什么代表的是C盘呢?而不是C盘里面的文件,还有程序怎么么判断我的硬盘有没有C盘
作者: 77七 时间: 2023-3-10 12:25
本帖最后由 77七 于 2023-3-10 12:43 编辑
回复 4# 小白白
就是判断 c: 这个驱动器是否存在,如果存在,就代表你的电脑有c盘
你可以参考下面的帖子,先了解一下基础知识
浅谈批处理命令for中的变量扩展
为什么 c:代表 c盘,不代表 名为 c: 的文件 大概是因为不会存在名为 c: 的文件 你可以尝试创建一个试试
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |