判断文件/目录/不存在- ::判断指定路径代表的是文件、目录还是不存在。
- ::
- ::isF <文件/目录> [合格路径] [标志]
- :: <文件/目录> 要判断的路径。
- :: 最后一个字符可以是“\”,方便用于处理“%~dp0”等后面跟有斜杠的路径。
- :: 合格路径 返回变量,默认为 Fn。处理后其值最后一个字符定不是“\”。
- :: 标志 返回变量,默认为 isFF。含义如下:
- :: 文件/目录/不存在
- :: 1 / 2 /0
- ::
- ::isF C:\boot.ini
- ::isF "C:\WINDOWS\" NEW_PATH
- ::isF "D:\SOFT" QUA_PATH FILE_OR_DIR_FLOG
- ::
- setlocal
- set "$FF_path=%~1"
- if "%~2"=="" (set $Fn=Fn)else set $Fn=%~2
- if "%~3"=="" (set $isFF=isFF)else set $isFF=%~3
- if "%$FF_path:~-1%"=="\" set "$FF_path=%$FF_path:~,-1%"
- if exist "%$FF_path%\" (set $isF=2)else (
- if exist "%$FF_path%" (set $isF=1)else set $isF=0
- )
- endlocal&set %$Fn%=%$FF_path%&set %$isFF%=%$isF%
- goto :eof
复制代码 判断文件属性
- ::判断文件/目录的属性。
- ::
- ::Atn <文件/目录> [属性]
- :: <文件/目录> 指定文件/目录
- :: 属性 返回变量,默认为att。
- ::
- ::CALL Atn.BAT C:\BOOT.INI
- ::Atn "%WINDIR%\NOTEPAD.EXE" FILE_ATTRIBUTE
- ::
- setlocal
- if "%~2"=="" (set $att=att)else set $att=%~2
- set $atbt=%~a1
- endlocal&set %$att%=%$atbt%
- goto :eof
复制代码 判断分区文件系统
- ::判断文件系统类型(CHKNTFS 法)
- ::
- ::FSt <分区> [类型]
- :: <分区> 带冒号的分区盘符。
- :: 类型 返回变量,默认为FStye。代表分区类型。
- ::
- ::FSt C:
- ::FSt H:\ FILE_SYSTEM_TYPE
- ::
- setlocal
- set "$Drv=%~1"
- if "%~2"=="" (set $FStye=FStye)else set $FStye=%~2
- if "%$Drv:~-1%"=="\" set "$Drv=%$Drv:~,-1%"
- for /f "tokens=2 delims=。 " %%t in ('"chkntfs %$Drv%|find "类型""') do (
- set $type=%%t
- )
- ::set $type=%$type:~,-1%
- endlocal&set %$FStye%=%$type%
- goto :eof
复制代码
- ::判断文件系统类型(FSUTIL 法)
- ::
- ::FSt2 <分区> [类型]
- :: <分区> 带冒号的分区盘符。
- :: 类型 返回变量,默认为FStye。代表分区类型。
- ::
- ::FSt2 C:
- ::FSt2 G:\ FILE_SYSTEM_TYPE
- ::
- setlocal
- set "$Drv=%~1"
- if "%~2"=="" (set $FStye=FStye)else set $FStye=%~2
- if "%$Drv:~-1%"==":" set "$Drv=%$Drv%\"
- for /f "tokens=2 delims=: " %%t in ('"fsutil fsinfo volumeinfo %$Drv%|find "系统名""') do (
- set $type=%%t
- )
- endlocal&set %$FStye%=%$type%
- goto :eof
复制代码
|