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

TOP

本帖最后由 CrLf 于 2015-11-18 18:04 编辑

Bat+JS 来一个
  1. 1>1/* :
  2. @echo off
  3. cscript -nologo -e:jscript "%~0" <a.txt >b.txt
  4. pause & exit /b
  5. */
  6. WSH.Echo(
  7.    WSH.StdIn.ReadAll().replace(
  8.       /"[^"]*"/g,
  9.       function($0){
  10.          return $0.replace(/\r?\n/g,'')
  11.       }
  12.    )
  13. )
复制代码

TOP

回复 46# qq253040425


    忘了加上输出,已修改
    我猜是通用的,你自己试试就知道了

TOP

本帖最后由 CrLf 于 2015-11-18 21:12 编辑

回复 55# qq253040425


    整个文件太大,那就逐行处理,换个思路,通过计算有几个 " 号来判断是否在引号内,JS 部分修改如下:
  1. var flag = false
  2. var arr = []
  3. ReadNextLine: while(!WSH.StdIn.AtEndOfStream){
  4.    var line = WSH.StdIn.ReadLine()
  5.    arr.push(line)
  6.    line.replace(/"/g,function(){flag=!flag})
  7.    if(flag&&!WSH.StdIn.AtEndOfStream) continue ReadNextLine
  8.    WSH.Echo(arr.join(''))
  9.    arr = []
  10. }
复制代码

TOP

回复 62# qq253040425


    通过计算 " 个数,来判断是否在引号内,只包含奇数个 " 时一直读取下一行直到闭合,然后接为一行输出
1

评分人数

TOP

回复 66# 依山居


    引号对

TOP

返回列表