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


  编码是UTF-8的话又乱码了

TOP

回复 4# yearharvest
  1. @echo off
  2. set n=2
  3. for /f "delims=" %%F in ('dir /b /a-d *.txt') do (
  4.     (for /f "delims=" %%i in ('type "%%F"^|findstr /n .*') do (
  5.         set "str=%%i"
  6.         setlocal enabledelayedexpansion
  7.         if "!str:\pos=(!" neq "%%i" (
  8.            for /f "tokens=1,2 delims=,)" %%a in ("!str:*\pos(=!") do (
  9.                set /a "i=%%a*n,j=%%b*n" 2>nul&&(
  10.                    for /f %%j in ("\pos(!i!,!j!)") do (
  11.                        set "str=!str:\pos(%%a,%%b)=%%j!"
  12.                    )
  13.                )
  14.            )
  15.         )
  16.           echo;!str:*:=!
  17.           endlocal
  18.      ))>$
  19.           move $ "%%F"
  20. )
  21. pause
复制代码

TOP

回复 4# yearharvest


    附件是unicode编码,第2行改成 text = fso.OpenTextFile("a.txt",1,,-1).Readall

TOP

两个方法处理下面这个文件都有问题,用2楼的处理后变成空文件,用3楼的报错“无效的过程调用或参数”,好像是因为编码的原因,然后我把编码转换成UTF-8,但是用2楼和3楼处理后都会乱码,请问这要怎么解决?
还有3楼的有没有办法像2楼可以处理同一后缀名的多个文件?

TOP

本帖最后由 apang 于 2013-10-31 18:43 编辑

纯练习
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. text = fso.OpenTextFile("a.txt").Readall
  3. Set re = New RegExp
  4. re.Pattern = "([\s\S]*?\\pos\()(\d+),(\d+)\)|([\s\S]+)$"
  5. re.IgnoreCase = True
  6. re.Global = True
  7. For Each a In re.Execute(text)
  8.     If a.SubMatches(3) = "" Then
  9.         str = str & a.SubMatches(0) & _
  10.         a.SubMatches(1) * 2 & "," & _
  11.         a.SubMatches(2) * 2 & ")"
  12.     Else str = str & a.SubMatches(3)
  13.     End If
  14. Next
  15. fso.OpenTextFile("b.txt",2,True).Write str
复制代码

TOP

  1. @echo off
  2. set n=2
  3. for /f "delims=" %%F in ('dir /b /a-d *.ini') do (
  4.     (for /f "usebackq delims=" %%i in ("%%F") do (
  5.          set "str=%%i"
  6.          setlocal enabledelayedexpansion
  7.          if "!str:\pos=(!" neq "%%i" (
  8.             for /f "tokens=1,2 delims=,)" %%a in ("!str:*\pos(=!") do (
  9.                 set /a "i=%%a*n,j=%%b*n" 2>nul&&(
  10.                     for /f %%j in ("\pos(!i!,!j!)") do (
  11.                         set "str=!str:\pos(%%a,%%b)=%%j!"
  12.                     )   
  13.                 )
  14.             )
  15.         )
  16.     for /f "delims=" %%i in ("!str!") do endlocal&echo %%i
  17.     ))>$
  18.     move $ "%%F"
  19. )
  20. pause
复制代码

TOP

返回列表