CODE: [Copy to clipboard]
On Error Resume Next
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile1 = oFSO.OpenTextFile("a.txt")
Set oFile2 = oFSO.OpenTextFile("b.txt",2,True)
Do Until oFile1.AtEndOfLine
arr = Split(oFile1.ReadLine,Space(1))
oFile2.WriteLine arr(0) & Space(1) & arr(1)
For i = 2 To UBound(arr) - 1 Step 16
str = ""
For j = 0 To 15 '这里下标可能越界,所以前面要On Error
str = str & arr(i + j) & Space(1)
Next
oFile2.WriteLine str
Next
'下面这行前面加个'号可以不显示在b.txt中
oFile2.WriteLine "*****************一行结束************"
Loop
oFile1.Close
oFile2.Close
Set oFile1 = Nothing
Set oFile2 = Nothing
Set oFSO = Nothing
保存为*.vbs到a.txt同目录下,会自动写到b.txt中,注意不要被覆盖了。CODE: [Copy to clipboard]
@echo off
for /f "delims=" %%i in (a.txt) do call :Sub %%i
pause
goto :eof
:Sub
set str=
set "flag=%~1"
if not defined flag goto :eof
for /l %%j in (1,1,2) do (call set "str=%%str%%%%~1 " & shift)
echo %str%
:Loop
set str=
set "flag=%~1"
if not defined flag goto :eof
for /l %%j in (1,1,16) do (call set "str=%%str%%%%~1 " & shift)
echo %str%
goto :Loop
用bat处理起来就怕一行的长度太大,另外处理特殊字符麻烦。