无忧启动论坛

标题: 求个批处理,高手指点一下,谢谢 [打印本页]

作者: qkywan    时间: 2024-9-28 20:44
标题: 求个批处理,高手指点一下,谢谢
先判断是否存在D盘,如果存在,执行A命令,如果不存在D盘,再判断是否存在E盘,如果存在,执行B命令,如果E盘也不存在,就判断是否存在F盘,如果存在,执行C命令哪位高手指点一下,谢谢

作者: qkywan    时间: 2024-9-28 21:07
自己解决了,请锁帖吧
作者: qkywan    时间: 2024-9-28 21:07
自己百度查的,话说现在百度的ai挺好用的
通过判断$RECYCLE.BIN这个是否存在来判断的
作者: 2010hook    时间: 2024-9-28 21:16
qkywan 发表于 2024-9-28 21:07
自己百度查的,话说现在百度的ai挺好用的
通过判断$RECYCLE.BIN这个是否存在来判断的

AI不太会写批处理,你把代码贴出来看看有多Low
作者: qkywan    时间: 2024-9-28 21:18
if exist "d:\$RECYCLE.BIN" (
    a命令
) else (
    if exist "e:\$RECYCLE.BIN" (
        e命令
    ) else (
        c命令
    )
)
这是我修改过的
作者: qkywan    时间: 2024-9-28 21:19

在批处理中,要实现先判断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命令来检查文件是否存在,这实际上是在检查访问该文件时是否能够找到对应的驱动器。如果文件存在,说明对应的驱动器可以被访问到;如果不存在,则可能意味着该路径不存在或者无法访问。然而,这种方法并不是直接判断驱动器是否存在的方法,而是通过检查路径下的文件或文件夹来间接推断。在实际应用中,这种方法通常是可行的,因为如果一个驱动器不存在,那么尝试访问该驱动器上的任何文件或文件夹都会失败。
作者: qkywan    时间: 2024-9-28 21:20
上面的是ai的答案
作者: 2010hook    时间: 2024-9-28 21:26
本帖最后由 2010hook 于 2024-9-28 22:03 编辑

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

滥用else有漏洞。
作者: mlgq    时间: 2024-9-28 21:43
1
作者: martin313    时间: 2024-9-28 21:44

先用 fsutil 或者 wmic 获取本地磁盘盘符列表,再进行条件判断
作者: ehan    时间: 2024-9-28 21:45
学习下学习下

作者: 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)) else echo A
PAUSE
作者: qkywan    时间: 2024-9-28 23:15
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)) ...

谢谢
作者: 窄口牛    时间: 2024-9-29 06:31
垃圾桶是隐藏文件夹,if exsit能判断隐藏文件夹吗?
作者: szwp    时间: 2024-9-29 06:48
2010hook 发表于 2024-9-28 21:26
BD真笨,直接这样:

滥用else有漏洞。

不需要双引号
作者: szwp    时间: 2024-9-29 06:50
窄口牛 发表于 2024-9-29 06:31
垃圾桶是隐藏文件夹,if exsit能判断隐藏文件夹吗?

无盘符的esp里文件也能判断
作者: 窄口牛    时间: 2024-9-29 06:59
szwp 发表于 2024-9-29 06:50
无盘符的esp里文件也能判断


无盘符两码事哇,无盘符有确定位置的代码。隐藏文件夹就是为了不让看。
作者: szwp    时间: 2024-9-29 07:39
窄口牛 发表于 2024-9-29 06:59
无盘符两码事哇,无盘符有确定位置的代码。隐藏文件夹就是为了不让看。

隐藏不影响判断,表示你知道这个文件名或文件夹
作者: szwp    时间: 2024-9-29 07:40
可以练习copy一个文件到隐藏文件夹
作者: wang1126    时间: 2024-9-29 08:34
谢谢12楼分享
作者: l3429900    时间: 2024-9-29 08:42
qkywan 发表于 2024-9-28 21:18
if exist "d:\$RECYCLE.BIN" (
    a命令
) else (

win是这样,但是linux等不一样
作者: l3429900    时间: 2024-9-29 08: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)) ...

好紧凑,赞。。。。
作者: yzqmxh    时间: 2024-9-29 10:37
学习一下
作者: 孟仁飞    时间: 2024-9-29 11:09
学习
作者: hilsonma    时间: 2024-9-29 15:17
可以直接判断某盘符是否存在的



按你的描述,批处理可以类似如下:
@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盘也就没有的呀。

作者: leitian72853    时间: 2024-10-1 21:55
hilsonma 发表于 2024-9-29 15:17
可以直接判断某盘符是否存在的

回答精确




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3