[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
4楼代码似乎未处理源文件末尾的 ];
楼主可以试试如下代码:
@echo off
set jsFile="楼主设定.js"
set LastLine#1="{"name":"Cheat_Menu","status":true,"description":"","parameters":{}},"
set LastLine#2="{"name":"Drill_SpeedGear","status":true,"description":"[v1.2]        系统 - 变速齿轮","parameters":{"初始齿轮速度":"2.50","是否绑定齿轮到变

量":"false","绑定的变量":"0","声音是否变速":"true","声音变速同步率":"0.25"}}"
for /f %%n in ('find /v /c "" ^< %jsFile%') do set/a totalLines=%%n
setlocal enabledelayedexpansion
set/a n=0
(for /f "usebackq tokens=* delims=" %%s in (%jsFile%) do (
   set/a n+=1
   if !n! equ %totalLines% (
      if !lastline! neq !LastLine#2! (
         echo,!LastLine#1!
         echo,!LastLine#2!
      )
   )
   echo,%%s
   set lastline="%%s"
))>new.js
endlocal&exit

说明》代码中用 find.exe 获取文件行数...

TOP

试了试自己的代码,更正如下:
set/p jsFile="拖入一个测试文件:"
::set jsFile="楼主设定.js"
set "LastLine#1={"name":"Cheat_Menu","status":true,"description":"","parameters":{}},"
set "LastLine#2={"name":"Drill_SpeedGear","status":true,"description":"[v1.2]        系统 - 变速齿轮","parameters":{"初始齿轮速度":"2.50","是否绑定齿轮到变

量":"false","绑定的变量":"0","声音是否变速":"true","声音变速同步率":"0.25"}}"
for /f %%n in ('find /v /c "" ^< %jsFile%') do set/a totalLines=%%n
setlocal enabledelayedexpansion
set/a n=0
(for /f "usebackq tokens=* delims=" %%s in (%jsFile%) do (
   set/a n+=1
   if !n! equ %totalLines% (
      if "!lastline!" neq "!LastLine#2!" (
         echo,!LastLine#1!
         echo,!LastLine#2!
      )
   )
   echo,%%s
   set "lastline=%%s"
))>new.js
endlocal&exit

4楼的代码未试成功...

TOP

今早拾贴才见楼主的js脚本中真有超过8K文本行字符量的'大坑',而且还是utf-8编码文件。这二者都算是碰了纯P玩法的'雷池'。若仅是前者,还可请'文本处理三剑客'赐福纯P代码。若是这二者联手,就难为纯P代码了...也许只能移步 vbs/PS/Py 任一脚本主场...
   谨记。

TOP

返回列表