找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: defanive

[原创] 【征集】批处理库函数征集

[复制链接]
发表于 2009-7-8 22:11:21 | 显示全部楼层
判断文件/目录/不存在
  1. ::判断指定路径代表的是文件、目录还是不存在。
  2. ::
  3. ::isF <文件/目录> [合格路径] [标志]
  4. ::  <文件/目录>   要判断的路径。
  5. ::          最后一个字符可以是“\”,方便用于处理“%~dp0”等后面跟有斜杠的路径。
  6. ::  合格路径    返回变量,默认为 Fn。处理后其值最后一个字符定不是“\”。
  7. ::  标志      返回变量,默认为 isFF。含义如下:
  8. ::          文件/目录/不存在
  9. ::          1 / 2 /0
  10. ::
  11. ::isF C:\boot.ini
  12. ::isF "C:\WINDOWS" NEW_PATH
  13. ::isF "D:\SOFT" QUA_PATH FILE_OR_DIR_FLOG
  14. ::
  15. setlocal
  16. set "$FF_path=%~1"
  17. if "%~2"=="" (set $Fn=Fn)else set $Fn=%~2
  18. if "%~3"=="" (set $isFF=isFF)else set $isFF=%~3
  19. if "%$FF_path:~-1%"=="" set "$FF_path=%$FF_path:~,-1%"
  20. if exist "%$FF_path%" (set $isF=2)else (
  21.  if exist "%$FF_path%" (set $isF=1)else set $isF=0
  22. )
  23. endlocal&set %$Fn%=%$FF_path%&set %$isFF%=%$isF%
  24. goto :eof
复制代码
判断文件属性
  1. ::判断文件/目录的属性。
  2. ::
  3. ::Atn <文件/目录> [属性]
  4. ::  <文件/目录>  指定文件/目录
  5. ::  属性     返回变量,默认为att。
  6. ::
  7. ::CALL Atn.BAT C:\BOOT.INI
  8. ::Atn "%WINDIR%\NOTEPAD.EXE" FILE_ATTRIBUTE
  9. ::
  10. setlocal
  11. if "%~2"=="" (set $att=att)else set $att=%~2
  12. set $atbt=%~a1
  13. endlocal&set %$att%=%$atbt%
  14. goto :eof
复制代码
判断分区文件系统
  1. ::判断文件系统类型(CHKNTFS 法)
  2. ::
  3. ::FSt <分区> [类型]
  4. ::  <分区>  带冒号的分区盘符。
  5. ::  类型   返回变量,默认为FStye。代表分区类型。
  6. ::
  7. ::FSt C:
  8. ::FSt H:\ FILE_SYSTEM_TYPE
  9. ::
  10. setlocal
  11. set "$Drv=%~1"
  12. if "%~2"=="" (set $FStye=FStye)else set $FStye=%~2
  13. if "%$Drv:~-1%"=="" set "$Drv=%$Drv:~,-1%"
  14. for /f "tokens=2 delims=。 " %%t in ('"chkntfs %$Drv%|find "类型""') do (
  15.  set $type=%%t
  16. )
  17. ::set $type=%$type:~,-1%
  18. endlocal&set %$FStye%=%$type%
  19. goto :eof
复制代码
  1. ::判断文件系统类型(FSUTIL 法)
  2. ::
  3. ::FSt2 <分区> [类型]
  4. ::  <分区>  带冒号的分区盘符。
  5. ::  类型   返回变量,默认为FStye。代表分区类型。
  6. ::
  7. ::FSt2 C:
  8. ::FSt2 G:\ FILE_SYSTEM_TYPE
  9. ::
  10. setlocal
  11. set "$Drv=%~1"
  12. if "%~2"=="" (set $FStye=FStye)else set $FStye=%~2
  13. if "%$Drv:~-1%"==":" set "$Drv=%$Drv%"
  14. for /f "tokens=2 delims=: " %%t in ('"fsutil fsinfo volumeinfo %$Drv%|find "系统名""') do (
  15.  set $type=%%t
  16. )
  17. endlocal&set %$FStye%=%$type%
  18. goto :eof
复制代码
发表于 2009-7-13 20:12:18 | 显示全部楼层
用批处理加到外部库 的确很好很强大
发表于 2012-4-17 13:06:57 | 显示全部楼层
先顶在说啊
发表于 2012-4-17 16:39:22 | 显示全部楼层
翻译的中文版里面哪个函数在中文系统中会出错?
Batcher 发表于 2009-2-3 12:02


比如GetDate函数,用于获取本地系统日期,我进行了如下修改,否则在我的windows XP sp3系统中测试出错:
  1. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  2. :GetDate yy mm dd
  3. ::
  4. :: 作者:Ritchie Lawrence, 2002-06-15. 版本 1.0
  5. ::
  6. :: 功能:把本地系统日期赋值给参数 1 到 3。
  7. :: 适用于 NT4/2000/XP/2003.
  8. ::
  9. :: 参数:%1 该变量用于接收年,四位(引用调用)
  10. :: %2 该变量用于接收月,两位,01 到 12(引用调用)
  11. :: %3 该变量用于接收日,两位,01 到 31(引用调用)
  12. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  13. setlocal ENABLEEXTENSIONS
  14. ::set t=2&if "%date%z" LSS "A" set t=1
  15. ::for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo/^|date') do (
  16. :: for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do (
  17. :: set %%a=%%d&set %%b=%%e&set %%c=%%f))
  18. set "first="
  19. for /f "tokens=1-3 delims=.-/ " %%a in ('date/t') do (
  20. if not defined first set first=1&set yy=%%a&set mm=%%b&set dd=%%c)
  21. endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF
  22. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
复制代码
发表于 2012-4-17 18:25:43 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:11 , Processed in 0.018003 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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