无忧启动论坛

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

[求助] 已解决!头大~,麻烦大家看看我这句批处理为什么即不提示错误也不输出任何内容?

[复制链接]
跳转到指定楼层
1#
发表于 2024-2-21 10:52:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 likeyouli 于 2024-2-21 11:36 编辑

判断我的电脑有几个分区,@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do if exist %%t: echo %%t
上边这样写一点问题都没有(echo前边有空格、冒号),会正常输出c d e分区,

@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
if exist %%t (echo %%t)
)   这段代码即不提示错误也什么都不输出,到底有什么问题呢 ?到底是哪里格式错了呢 ?难道必须向上边一样用冒号和空格 ?


上边内容是原贴,感谢无忧网友的解答:原来是冒号惹的祸,我以为两句代码写到一行里,必须用冒号,如果写到两行里,则不需要冒号(学习vba留下的影响),这里冒号的作用代表盘符,如c:d:,所以无论怎样写都必须用冒号。

2#
发表于 2024-2-21 10:56:46 | 只看该作者
我不晓得  帮顶
回复

使用道具 举报

3#
发表于 2024-2-21 11:09:30 | 只看该作者
echo off删了,第二段缺:就判断文件是否存在了

点评

@echo off for %%t in (c,d,e,f,g,h,i,j,k,l,m) do ( if exist %%t (echo %%t) ) 这段代码试验了得快上百次了,老是没找到错误所在,用“:”的话,不就与第一段代码一样了 ? 第一段代码之所以用英文冒号  详情 回复 发表于 2024-2-21 11:17
回复

使用道具 举报

4#
发表于 2024-2-21 11:13:01 | 只看该作者
少了个冒号呀,路径判断,没冒号哪行。

点评

谢谢,,我还以为冒号的作用是两句代码写到一行里所以才用冒号呢(学习vba留下的影响),原来是判断盘符必须用冒号。  详情 回复 发表于 2024-2-21 11:30
回复

使用道具 举报

5#
发表于 2024-2-21 11:14:25 | 只看该作者
本帖最后由 zlq_hysy 于 2024-2-21 11:18 编辑

@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
if exist %%t: (echo %%t)
)  

pause

在if后的那个%%t必须加冒号,它判断c: d: 。。。。是否存在,echo后的%%t可加可不加,不加不显示盘符后面的“:”而已。暂停命令pause加上后,窗口不会瞬间消失,便于观看
回复

使用道具 举报

6#
 楼主| 发表于 2024-2-21 11:17:48 | 只看该作者
szwp 发表于 2024-2-21 11:09
echo off删了,第二段缺:就判断文件是否存在了

@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
if exist %%t (echo %%t)
)  这段代码试验了得快上百次了,老是没找到错误所在,用“:”的话,不就与第一段代码一样了  ?
   第一段代码之所以用英文冒号,我的理解是:两句代码写到一句里,必须用冒号,如果我写到两句里,就不需要用冒号了啊

点评

fsutil fsinfo drives 看懂结果里的:  详情 回复 发表于 2024-2-21 12:38
冒号不是命令分隔符  详情 回复 发表于 2024-2-21 11:22
回复

使用道具 举报

7#
发表于 2024-2-21 11:22:25 | 只看该作者
likeyouli 发表于 2024-2-21 11:17
@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
if exist %%t (echo %%t)

冒号不是命令分隔符

点评

感谢,,原来是判断盘符的原因,我还以为冒号是两句代码写到一行里所以才用冒号呢(学习vba留下的影响)  详情 回复 发表于 2024-2-21 11:28
回复

使用道具 举报

8#
 楼主| 发表于 2024-2-21 11:28:45 | 只看该作者
zlq_hysy 发表于 2024-2-21 11:22
冒号不是命令分隔符

感谢,,原来是判断盘符的原因,我还以为冒号是两句代码写到一行里所以才用冒号呢(学习vba留下的影响)
回复

使用道具 举报

9#
 楼主| 发表于 2024-2-21 11:30:48 | 只看该作者
窄口牛 发表于 2024-2-21 11:13
少了个冒号呀,路径判断,没冒号哪行。

谢谢,,我还以为冒号的作用是两句代码写到一行里所以才用冒号呢(学习vba留下的影响),原来是判断盘符必须用冒号。
回复

使用道具 举报

10#
发表于 2024-2-21 12:29:19 | 只看该作者
(A: B: C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:)
回复

使用道具 举报

11#
发表于 2024-2-21 12:38:01 | 只看该作者
学习了
回复

使用道具 举报

12#
发表于 2024-2-21 12:38:54 | 只看该作者
likeyouli 发表于 2024-2-21 11:17
@echo off
for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
if exist %%t (echo %%t)

fsutil fsinfo drives
看懂结果里的:
回复

使用道具 举报

13#
发表于 2024-2-21 12:51:32 | 只看该作者
帮你谷歌问了下
  1. 您提供的代码没有问题,可以正常运行。该代码的作用是遍历 C、D、E、F、G、H、I、J、K、L、M 这 11 个盘符,并输出存在(已存在文件或目录)的盘符。

  2. 之所以没有输出,是因为您没有在代码中指定要输出的内容。如果您想输出每个盘符的详细信息,可以使用以下代码:

  3. ```
  4. @echo off
  5. for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
  6.   if exist %%t (
  7.     echo 盘符: %%t
  8.     echo 是否存在文件或目录: 是
  9.   )
  10. )
  11. ```

  12. 输出结果如下:

  13. ```
  14. 盘符: C
  15. 是否存在文件或目录: 是
  16. 盘符: D
  17. 是否存在文件或目录: 是
  18. ...
  19. ```

  20. 如果您只想输出存在(已存在文件或目录)的盘符,可以使用以下代码:

  21. ```
  22. @echo off
  23. for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
  24.   if exist %%t (
  25.     echo %%t
  26.   )
  27. )
  28. ```

  29. 输出结果如下:

  30. ```
  31. C
  32. D
  33. ...
  34. ```

  35. 您也可以使用以下代码来简化输出:

  36. ```
  37. @echo off
  38. for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
  39.   if exist %%t echo %%t
  40. )
  41. ```

  42. 输出结果与上一段代码相同。

  43. 如果您想使用冒号和空格来格式化输出,可以使用以下代码:

  44. ```
  45. @echo off
  46. for %%t in (c,d,e,f,g,h,i,j,k,l,m) do (
  47.   if exist %%t (
  48.     echo 盘符: %%t
  49.   ) else (
  50.     echo 盘符: %%t 不存在
  51.   )
  52. )
  53. ```

  54. 输出结果如下:

  55. ```
  56. 盘符: C
  57. 盘符: D 不存在
  58. ...
  59. ```

  60. 根据您的需求,您可以选择相应的代码进行使用。
复制代码
回复

使用道具 举报

14#
发表于 2024-2-21 12:53:13 | 只看该作者
学习了,行家一出手就知有没有
回复

使用道具 举报

15#
发表于 2024-2-21 13:47:36 | 只看该作者
学习一下了
回复

使用道具 举报

16#
发表于 2024-2-21 13:49:14 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 10:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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