Board logo

标题: [文本处理] 求助BAT脚本数据处理问题 [打印本页]

作者: Bieber    时间: 2024-4-13 14:43     标题: 求助BAT脚本数据处理问题

变量A=ja-jp,en-us,zh-cn
规则1:ja-jp,en-us,zh-cn(满足规则,变量*10)
规则2:ja-jp,zh-cn(满足规则,变量*20)
规则3:zh-cn,en-us(满足规则,变量*30)

就是要依次检查变量A中语言是否存在于规则1规则2规则3中,如果在,则执行指定命令

ja-jp需要执行变量*10
en-us需要执行变量*20
zh-cn需要执行变量*30

变量是各种语言,比如en-us,zh-cn,ja-jp等等
作者: Batcher    时间: 2024-4-13 14:49

回复 1# Bieber


    以顶楼数据为例,需要得到的结果是什么?
作者: Bieber    时间: 2024-4-13 15:06

回复 2# Batcher
就是想安装语言包(变量A),比如语言包1,语言包5,语言包9,语言包13
如果语言包在数据表1中,则执行语言包*10
如果语言包在数据表2中,则执行语言包*20
如果语言包在数据表3中,则执行语言包*30
数据表1,数据表2,数据表3分别对应不同的语言规则
作者: czjt1234    时间: 2024-4-13 17:29

数据表是啥格式?
文本文件,excel文件,access数据库,还是什么?

还有,表1表2都有5,怎么处理
作者: Bieber    时间: 2024-4-13 17:58

本帖最后由 Bieber 于 2024-4-13 18:05 编辑

回复 4# czjt1234
可以整理成txt,也可以是字符串,比如en-us,zh-cn,ja-jp等等

语言规则1:ja-jp,en-us,zh-cn(满足规则,安装fnc1)
语言规则2:ja-jp,zh-cn(满足规则,安装fnc2)
语言规则3:zh-cn,en-us(满足规则,安装fnc3)

需要安装的语言:ja-jp,en-us,zh-cn

ja-jp需要安装fnc1和fnc2
en-us需要安装fnc1和fnc3
zh-cn需要安装fnc1 fnc2和fnc3
作者: terse    时间: 2024-4-15 10:35

  1. @echo off&setlocal enabledelayedexpansion
  2. set "lang=ja-jp,en-us,zh-cn"
  3. set "lang1=,ja-jp,en-us,zh-cn,"
  4. set "lang2=,ja-jp,zh-cn,"
  5. set "lang3=,zh-cn,en-us,"
  6. for %%a in (%lang%) do  (
  7.      for /l  %%i in (1,1,3) do (
  8.           if "!lang%%i!" neq "!lang%%i:,%%a,=!" (
  9.               echo %%a fnc%%i
  10.           )
  11.      )
  12. )
  13. pause
复制代码

作者: Batcher    时间: 2024-4-15 15:46

回复 1# Bieber
  1. @echo off
  2. set "Input=ja-jp,zh-cn"
  3. for %%i in (%Input%) do (
  4.     echo --- Checking %%i
  5.     call :CheckRule %%i
  6. )
  7. pause
  8. goto :eof
  9. :CheckRule
  10. set "Rule1=ja-jp,en-us,zh-cn"
  11. set "Rule2=ja-jp,zh-cn"
  12. set "Rule3=zh-cn,en-us"
  13. echo %Rule1% | findstr /i "%1" >nul
  14. if errorlevel 1 (
  15.     echo %Rule1% : Not match
  16. ) else (
  17.     echo %Rule1% : Install
  18. )
  19. echo %Rule2% | findstr /i "%1" >nul
  20. if errorlevel 1 (
  21.     echo %Rule2% : Not match
  22. ) else (
  23.     echo %Rule2% : Install
  24. )
  25. echo %Rule3% | findstr /i "%1" >nul
  26. if errorlevel 1 (
  27.     echo %Rule3% : Not match
  28. ) else (
  29.     echo %Rule3% : Install
  30. )
复制代码

作者: Bieber    时间: 2024-4-16 08:55

回复 7# Batcher

请教下,如果我想将所有的语言安装完毕后,去安装驱动,我在goto处跳转至安装驱动的部分,但是这样写后,驱动安装那里会在每个Input语言下,都安装一次,问题出在哪里?
  1. @echo off
  2. set "Input=ja-jp,zh-cn"
  3. for %%i in (%Input%) do (
  4.     echo --- Checking %%i
  5.     call :CheckRule %%i
  6. )
  7. pause
  8. goto :installDriver
  9. :CheckRule
  10. set "Rule1=ja-jp,en-us,zh-cn"
  11. set "Rule2=ja-jp,zh-cn"
  12. set "Rule3=zh-cn,en-us"
  13. echo %Rule1% | findstr /i "%1" >nul
  14. if errorlevel 1 (
  15.     echo %Rule1% : Not match
  16. ) else (
  17.     echo %Rule1% : Install
  18. )
  19. echo %Rule2% | findstr /i "%1" >nul
  20. if errorlevel 1 (
  21.     echo %Rule2% : Not match
  22. ) else (
  23.     echo %Rule2% : Install
  24. )
  25. echo %Rule3% | findstr /i "%1" >nul
  26. if errorlevel 1 (
  27.     echo %Rule3% : Not match
  28. ) else (
  29.     echo %Rule3% : Install
  30. )
  31. :installDriver
  32. echo :InstallDriver for lang
复制代码

作者: Batcher    时间: 2024-4-16 09:18

回复 8# Bieber


第34行下面加一行:
goto :eof




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2