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

[文本处理] 批处理for和if 嵌套的相关问题

检测硬盘分区
  1. @echo off
  2. 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
  3. echo 当前硬盘的分区有:
  4. for %%i in (%str%) do if exist %%i: echo %%i:
  5. pause
复制代码
以上的代码,为什么明明 c-Z都赋值给了 %str%。后面判断 %%i  存在的时候会不一样呢

麻烦大佬们指导一下

本帖最后由 77七 于 2023-3-10 12:43 编辑

回复 4# 小白白


  就是判断 c: 这个驱动器是否存在,如果存在,就代表你的电脑有c盘
你可以参考下面的帖子,先了解一下基础知识
浅谈批处理命令for中的变量扩展
为什么 c:代表 c盘,不代表 名为 c: 的文件 大概是因为不会存在名为  c:  的文件 你可以尝试创建一个试试
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


    当%%i 值为c 时 "%%i:" 表示c盘----这个%%i 为什么代表的是C盘呢?而不是C盘里面的文件,还有程序怎么么判断我的硬盘有没有C盘

TOP

回复 1# 小白白


这样能理解吗:
  1. @echo off
  2. 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
  3. echo 当前硬盘的分区有:
  4. for %%i in (%str%) do (
  5.     echo --- 正在判断 %%i: 是否存在
  6.     if exist %%i: (
  7.         echo %%i:
  8.     )
  9. )
  10. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我猜测你是没了解代码的意思,你想把c-z全打印出来?
这个是判断硬盘分区是否存在的批处理,当%%i 值为c 时 "%%i:" 表示c盘,如果存在c盘 就打印c:
bat小白,请多指教!谢谢!

TOP

返回列表