判断文件是否存在,不要用if exist和if not exist,因为他们会受到文件是否隐藏的影响,改用dir /a 命令代替

@echo off & setlocal enabledelayedexpansion
rem 判断文件是否存在,不要用if exist和if not exist,因为他们会受到文件是否隐藏的影响,改用dir /a 命令:
c:
dir /a c:ootcd 1>nul 2>nul && (
echo 文件找到了
echo 我还要干其他的事情1...
) || (
echo 文件未找到
echo 我还要干其他的事情2...
)
pause


call :emptydisk
set adisk=%emptydisk%
echo 空盘%adisk%
pause
exit /b

:emptydisk
rem 该子程序通用,不用修改,输出变量为%emptydisk%,调用子程序后可用变量代换出来,例如set adisk=%emptydisk%
echo 开始寻找空盘
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
dir /a %%i: >nul 2>nul|| set emptydisk=%%i: && exit /b
)

rem  ==========================示例2=================

@echo off & setlocal enabledelayedexpansion
rem 判断盘符或者文件夹、文件是否存在,不要用if exist和if not exist,因为他们会受到文件是否隐藏的影响,改用dir /a 命令:
c:
dir /a c:ootcd 1>nul 2>nul && (
echo 文件找到了
echo 我还要干其他的事情1...
) || (
echo 文件未找到
echo 我还要干其他的事情2...
)
pause

echo 开始寻找空盘
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
dir /a %%i: >nul 2>nul|| set emptydisk=%%i: && goto :18
)

:18
echo 空盘%emptydisk%
pause

 

原文地址:https://www.cnblogs.com/liuzhaoyzz/p/10301054.html