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

先使用for /f中的切分功能排除干扰字符,后面直指主题,即直接找出各字段对应的内容,感觉这样应当更准确些,防止出现某些位置异常而产生匹配错误的情况:
  1. @echo off
  2. set /a #ClassId=#skillname=#skillId=#skillLvl=#getLevel=#levelUpSp=#ID=#count=0
  3. setlocal enabledelayedexpansion
  4. for /f "delims=<> " %%x in (1.log) do (
  5.     for /f "tokens=1*" %%i in ("%%x") do (
  6.         for %%a in (%%j) do (
  7.             if defined x (
  8.                 set !x!=%%~a
  9.                 set x=
  10.             ) else if defined #%%a (
  11.                 set x=%%a
  12.             )
  13.             if /i "%%a"=="/" (
  14.                 echo,!ClassId! !skillname! !skillId! !skillLvl! !getLevel! !levelUpSp! !ID! !count!
  15.                 for %%y in (skillname skillId skillLvl getLevel levelUpSp ID count) do set %%y=
  16.             )
  17.         )
  18.     )
  19. )
  20. pause
复制代码
开始上面代码好像有些问题,现已修改。

TOP

返回列表