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

[文本处理] 求助BAT脚本数据处理问题

[复制链接]
发表于 2024-4-13 14:43:06 | 显示全部楼层 |阅读模式
变量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等等
发表于 2024-4-13 14:49:00 | 显示全部楼层
回复 1# Bieber


    以顶楼数据为例,需要得到的结果是什么?
 楼主| 发表于 2024-4-13 15:06:26 | 显示全部楼层
回复 2# Batcher
就是想安装语言包(变量A),比如语言包1,语言包5,语言包9,语言包13
如果语言包在数据表1中,则执行语言包*10
如果语言包在数据表2中,则执行语言包*20
如果语言包在数据表3中,则执行语言包*30
数据表1,数据表2,数据表3分别对应不同的语言规则
发表于 2024-4-13 17:29:44 | 显示全部楼层
数据表是啥格式?
文本文件,excel文件,access数据库,还是什么?

还有,表1表2都有5,怎么处理
 楼主| 发表于 2024-4-13 17:58:20 | 显示全部楼层
本帖最后由 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
发表于 2024-4-15 10:35:21 | 显示全部楼层
  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
复制代码
发表于 2024-4-15 15:46:25 | 显示全部楼层
回复 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. )
复制代码
 楼主| 发表于 2024-4-16 08:55:19 | 显示全部楼层
回复 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
复制代码
发表于 2024-4-16 09:18:41 | 显示全部楼层
回复 8# Bieber


第34行下面加一行:
goto :eof
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 02:48 , Processed in 0.018074 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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