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

回复 3楼 的帖子

翻译的中文版里面哪个函数在中文系统中会出错?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

大家帮忙多写一点啊,软件是写好了,但是库函数少得不能见人。。。

TOP

再附上几个函数库做参考:

判断文件夹是否为空的函数:
  1. 1.0
  2. Ritchie Lawrence
  3. 不需要其他库的支持
  4. isDirEmpty标签
  5. 定义了isDirEmpty标签,用于判断文件夹是否为空
  6. 用法 call :isDirEmpty "Directory"&& Command1 || Command2
  7. Directory是文件夹路径,可用短名。为空时,会执行Command1,否则执行Command2
  8. 使用本库的时候可以给参数外加上双引号(如"C:\Windows"),本库会自动处理
  9. 使用本库需要保留isDirEmpty标签,i变量
  10. //**//
  11. :isDirEmpty
  12. setlocal enableextensions
  13. dir/ad "%~1" >nul 2>nul||(goto :EOF)
  14. set i=0
  15. for /f %%a in ('dir /a/b "%~1" 2^>nul') do set /a "i+=1"
  16. if %i%==0 (ver>nul) else (md;2>nul)
  17. endlocal
  18. goto :EOF
复制代码



声明一个数组:
  1. 1.0
  2. BatCodeer
  3. 不需要其他库的支持
  4. NewArray标签,arrays贮存变量
  5. 定义了NewArray标签,用于定义新的数组,支持1-3维度。
  6. 用法:call :NewArray "Array" "Var"
  7. Array是形如array_2的字串符,其中array是数组名,2是一维长度。Var是数组的缺省值。定义二维数组则是形如array_2_2,三维则是array_2_2_2。
  8. 例如call :NewArray "array_2_2" "0",执行后变量array_1_1、array_1_2、array_2_1、array_2_2的值均为0
  9. 使用本库的时候可以给参数外加上双引号(如"array_2_2"),本库会自动处理
  10. 使用本库需要保留NewArray标签,arrays变量
  11. //**//
  12. :NewArray
  13. if "%~1"=="" goto :EOF
  14. for /f "eol= tokens=1-4 delims=_" %%1 in ("%~1") do (
  15. if "%%~2"=="" goto :EOF
  16. set arrays=%arrays%%%1;
  17. if "%%~3"=="" (
  18.   for /l %%a in (1,1,%%2) do (
  19.    set "%%1_%%a=%~2"
  20.   )
  21.   goto :EOF
  22. ) else (
  23.   if "%%~4"=="" (
  24.    for /l %%a in (1,1,%%2) do (
  25.     for /l %%b in (1,1,%%3) do (
  26.      set "%%1_%%a_%%b=%~2"
  27.     )
  28.    )
  29.   ) else (
  30.    for /l %%a in (1,1,%%2) do (
  31.     for /l %%b in (1,1,%%3) do (
  32.      for /l %%c in (1,1,%%4) do (
  33.       set "%%1_%%a_%%b_%%c=%~2"
  34.      )
  35.     )
  36.    )
  37.   )
  38. )
  39. )
  40. goto :EOF
复制代码



获得数组的维数:
  1. 1.0
  2. BatCodeer
  3. 不需要其他库的支持
  4. GetArrayWides标签
  5. 定义了GetArrayWides标签,用于获得数组的维度
  6. 用法 call :GetArrayWides ArrayName Variable
  7. ArrayName是数组的名称(例如数组array_10_10,名称为array),数组可以是隐式或显式定义。数组的维度将保存在Variable变量里
  8. 使用本库的时候可以给参数外加上双引号(如"array"),本库会自动处理
  9. 使用本库需要保留GetArrayWides标签
  10. 使用本库需要开启变量延迟
  11. //**//
  12. :GetArrayWides
  13. setlocal enableextensions
  14. set "ArrayWides=%~1"
  15. set "AWs=0"
  16. for /l %%a in (1,1,3) do (
  17. set "ArrayWides=!ArrayWides!_1"
  18. if defined !ArrayWides! set "AWs=%%a"
  19. )
  20. endlocal&set "%~2=%AWs%"
  21. goto :EOF
复制代码



获得数组某一维上有多少个数据:
  1. 1.0
  2. BatCodeer
  3. 需要GetArrayWides库
  4. GetArrayWideNum、GetArrayWideNum_1标签
  5. 定义了GetArrayWideNum标签,用于获得数组维度中的数据个数
  6. 用法 call :GetArrayWideNum ArrayName ArrayWide Variable
  7. ArrayName是数组的名称(例如数组array_10_10,名称为array),数组可以是隐式或显式定义
  8. ArrayWide是需返回数据个数的数组维度。数组的维度将保存在Variable变量里
  9. 使用本库的时候可以给参数外加上双引号(如"array"),本库会自动处理
  10. 使用本库需要保留GetArrayWideNum、GetArrayWideNum_1标签
  11. 使用本库需要开启变量延迟以及GetArrayWides库
  12. //**//
  13. :GetArrayWideNum
  14. setlocal enableextensions
  15. call :GetArrayWides "%~1" "AWs"
  16. if %AWs%==0 (
  17. endlocal
  18. set "%~3=0"
  19. goto :EOF
  20. )
  21. if %AWs% lss %~2 (
  22. endlocal
  23. set "%~3=0"
  24. goto :EOF
  25. )
  26. set /a "leftn=%~2-1"
  27. set /a "rightn=%AWs%-%~2"
  28. for /l %%a in (1,1,%leftn%) do set "left=!left!_1"
  29. for /l %%a in (1,1,%rightn%) do set "right=!right!_1"
  30. set /a AWNs=0
  31. :GetArrayWideNum_1
  32. set /a AWNs+=1
  33. if defined %~1%left%_%AWNs%%right% goto GetArrayWideNum_1
  34. endlocal&set /a "%~3=%AWNs%-1"
  35. goto :EOF
复制代码

TOP

他的函数库看过了,很好很强大,不过基本都是日期类的,有很多函数不适合移植到中文系统。。。

TOP

Ritchie Lawrence 批处理函数库中英文版
http://bbs.bathome.net/thread-3056-1-2.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表