无忧启动论坛

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

[求助] 求个批处理,高手指点一下,谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2024-9-28 20:44:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
先判断是否存在D盘,如果存在,执行A命令,如果不存在D盘,再判断是否存在E盘,如果存在,执行B命令,如果E盘也不存在,就判断是否存在F盘,如果存在,执行C命令哪位高手指点一下,谢谢
2#
 楼主| 发表于 2024-9-28 21:07:03 | 只看该作者
自己解决了,请锁帖吧
回复

使用道具 举报

3#
 楼主| 发表于 2024-9-28 21:07:54 | 只看该作者
自己百度查的,话说现在百度的ai挺好用的
通过判断$RECYCLE.BIN这个是否存在来判断的

点评

AI不太会写批处理,你把代码贴出来看看有多Low  详情 回复 发表于 2024-9-28 21:16
回复

使用道具 举报

4#
发表于 2024-9-28 21:16:36 | 只看该作者
qkywan 发表于 2024-9-28 21:07
自己百度查的,话说现在百度的ai挺好用的
通过判断$RECYCLE.BIN这个是否存在来判断的

AI不太会写批处理,你把代码贴出来看看有多Low
回复

使用道具 举报

5#
 楼主| 发表于 2024-9-28 21:18:54 | 只看该作者
if exist "d:\$RECYCLE.BIN" (
    a命令
) else (
    if exist "e:\$RECYCLE.BIN" (
        e命令
    ) else (
        c命令
    )
)
这是我修改过的

点评

win是这样,但是linux等不一样  详情 回复 发表于 2024-9-29 08:42
回复

使用道具 举报

6#
 楼主| 发表于 2024-9-28 21:19:48 | 只看该作者

在批处理中,要实现先判断D盘是否存在,如果存在则执行A命令,如果不存在则判断E盘是否存在的逻辑,可以通过组合使用if exist命令来实现。但是,需要注意的是,Windows系统中并没有直接的方式来“判断”一个驱动器是否存在,因为每个驱动器在Windows中都是一个逻辑分区,它们总是存在的。不过,我们可以通过检查特定路径下的文件或文件夹来判断该驱动器是否被访问过。

以下是一个示例批处理脚本,它首先检查D盘根目录下是否存在某个文件(例如d:\test.txt),如果存在,则执行A命令;如果不存在,则检查E盘是否存在(通过检查E盘根目录下的文件或文件夹),如果E盘存在,则执行相应的操作。但请注意,这个示例假设A命令和E盘相关的操作是已知的,这里用echo命令作为示例来代替A命令:

batch
Copy Code
@echo off

:: 检查D盘是否存在(通过检查D盘根目录下的文件是否存在)
if exist "d:\test.txt" (
    :: 如果D盘存在,执行A命令(这里用echo命令代替A命令)
    echo D盘存在,执行A命令...
) else (
    :: 如果D盘不存在,检查E盘是否存在(通过检查E盘根目录下的文件或文件夹)
    if exist "e:\test.txt" (
        :: 如果E盘存在,执行相应的操作(这里用echo命令代替)
        echo E盘存在,执行相关操作...
    ) else (
        :: 如果E盘也不存在,可以执行其他逻辑或提示信息
        echo D盘和E盘都不存在。
    )
)
在这个脚本中,我们使用了if exist命令来检查文件是否存在,这实际上是在检查访问该文件时是否能够找到对应的驱动器。如果文件存在,说明对应的驱动器可以被访问到;如果不存在,则可能意味着该路径不存在或者无法访问。然而,这种方法并不是直接判断驱动器是否存在的方法,而是通过检查路径下的文件或文件夹来间接推断。在实际应用中,这种方法通常是可行的,因为如果一个驱动器不存在,那么尝试访问该驱动器上的任何文件或文件夹都会失败。
回复

使用道具 举报

7#
 楼主| 发表于 2024-9-28 21:20:01 | 只看该作者
上面的是ai的答案
回复

使用道具 举报

8#
发表于 2024-9-28 21:26:18 | 只看该作者
本帖最后由 2010hook 于 2024-9-28 22:03 编辑

BD真笨,直接这样:
  1. if exist "D:\" A
复制代码

滥用else有漏洞。

点评

不需要双引号  详情 回复 发表于 2024-9-29 06:48
你这逻辑已经改变了!  发表于 2024-9-28 21:50
回复

使用道具 举报

9#
发表于 2024-9-28 21:43:06 | 只看该作者
1
回复

使用道具 举报

10#
发表于 2024-9-28 21:44:40 | 只看该作者

先用 fsutil 或者 wmic 获取本地磁盘盘符列表,再进行条件判断
回复

使用道具 举报

11#
发表于 2024-9-28 21:45:00 | 只看该作者
学习下学习下
回复

使用道具 举报

12#
发表于 2024-9-28 23:12:42 | 只看该作者
@ECHO OFF
if not exist D:\ (if not exist E:\ (if not exist F:\ (exit/b) else echo C) else (echo B)) else echo A
PAUSE

点评

好紧凑,赞。。。。  详情 回复 发表于 2024-9-29 08:43
谢谢  详情 回复 发表于 2024-9-28 23:15
回复

使用道具 举报

13#
 楼主| 发表于 2024-9-28 23:15:41 | 只看该作者
ppll2030 发表于 2024-9-28 23:12
@ECHO OFF
if not exist D:\ (if not exist E:\ (if not exist F:\ (exit/b) else echo C) else (echo B)) ...

谢谢
回复

使用道具 举报

14#
发表于 2024-9-29 06:31:19 来自手机 | 只看该作者
垃圾桶是隐藏文件夹,if exsit能判断隐藏文件夹吗?

点评

无盘符的esp里文件也能判断  详情 回复 发表于 2024-9-29 06:50
回复

使用道具 举报

15#
发表于 2024-9-29 06:48:16 来自手机 | 只看该作者
2010hook 发表于 2024-9-28 21:26
BD真笨,直接这样:

滥用else有漏洞。

不需要双引号
回复

使用道具 举报

16#
发表于 2024-9-29 06:50:21 来自手机 | 只看该作者
窄口牛 发表于 2024-9-29 06:31
垃圾桶是隐藏文件夹,if exsit能判断隐藏文件夹吗?

无盘符的esp里文件也能判断

点评

无盘符两码事哇,无盘符有确定位置的代码。  详情 回复 发表于 2024-9-29 06:59
回复

使用道具 举报

17#
发表于 2024-9-29 06:59:34 来自手机 | 只看该作者
szwp 发表于 2024-9-29 06:50
无盘符的esp里文件也能判断


无盘符两码事哇,无盘符有确定位置的代码。隐藏文件夹就是为了不让看。

点评

隐藏不影响判断,表示你知道这个文件名或文件夹  详情 回复 发表于 2024-9-29 07:39
回复

使用道具 举报

18#
发表于 2024-9-29 07:39:03 来自手机 | 只看该作者
窄口牛 发表于 2024-9-29 06:59
无盘符两码事哇,无盘符有确定位置的代码。隐藏文件夹就是为了不让看。

隐藏不影响判断,表示你知道这个文件名或文件夹
回复

使用道具 举报

19#
发表于 2024-9-29 07:40:45 来自手机 | 只看该作者
可以练习copy一个文件到隐藏文件夹
回复

使用道具 举报

20#
发表于 2024-9-29 08:34:21 | 只看该作者
谢谢12楼分享
回复

使用道具 举报

21#
发表于 2024-9-29 08:42:07 | 只看该作者
qkywan 发表于 2024-9-28 21:18
if exist "d:\$RECYCLE.BIN" (
    a命令
) else (

win是这样,但是linux等不一样
回复

使用道具 举报

22#
发表于 2024-9-29 08:43:43 | 只看该作者
ppll2030 发表于 2024-9-28 23:12
@ECHO OFF
if not exist D:\ (if not exist E:\ (if not exist F:\ (exit/b) else echo C) else (echo B)) ...

好紧凑,赞。。。。
回复

使用道具 举报

23#
发表于 2024-9-29 10:37:50 | 只看该作者
学习一下
回复

使用道具 举报

24#
发表于 2024-9-29 11:09:55 | 只看该作者
学习
回复

使用道具 举报

25#
发表于 2024-9-29 15:17:27 | 只看该作者
可以直接判断某盘符是否存在的



按你的描述,批处理可以类似如下:
@echo off
if exist d: (echo a) else (if exist e: (echo b) else (if exist f: echo c))
pause


就是有点疑惑你的逻辑,一般不是先有D盘才有E盘,先有E盘才有F盘的吗,怎么你要倒过来判断。
通常D盘没有的话,E盘F盘也就没有的呀。

点评

回答精确  详情 回复 发表于 2024-10-1 21:55
回复

使用道具 举报

26#
发表于 2024-10-1 21:55:31 | 只看该作者
hilsonma 发表于 2024-9-29 15:17
可以直接判断某盘符是否存在的

回答精确
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 15:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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