Originally posted by Taurus at 2010-7-23 03:38:
@echo off
for /f "delims=" %%i in ('more 1.txt') do (
set str=%%i
call set str=%%str:^|=☆%%
call echo %%str%%
)
pause
@echo off
(for /f "delims=" %%i in ('findstr /n .* 1.txt') do (
set "str=%%i"
setlocal enabledelayedexpansion
if "!str:*:=!"=="" (echo;) else (
set str=!str:*:=!
echo;!str:^|=☆!
)))
echo 请复制粘贴!&pause>nul
@echo off
setlocal enabledelayedexpansion
set/p str=<1.txt
set ptr=0,pre=0
:loop
if "!str:~%ptr%,2!"=="~|" (
set /a lng=ptr-pre
call set new=!new!%%str:~!pre!,!lng!%%☆
set /a pre=ptr+2
)
if "!str:~%ptr%,2!"=="" (
set new=!new!!str:~%pre%!
echo !new!>2.txt
exit
)
set /a ptr+=1
goto loop
@echo off&setlocal enabledelayedexpansion
set oldfile="d:\1.txt"
set newfile="d:\2.txt"
if exist d:\2.txt del d:\2.txt
(for /f "tokens=*" %%a in ('findstr /n .* %oldfile%') do (
set var=%%a
set var=!var:*:=!
set str=0
for /l %%a in (1,1,30) do (
rem 用for /f 来分段处理,当前可以处理30X2段,如果更多你可以把30改大一点,不过这个值越大速度越慢
for /f "tokens=1,2* delims=~|" %%b in ("!var!") do (
if "%%b" neq "" (set str=!str!☆%%a☆%%b) else (set str=!str!☆%%a)
set var=%%c
)
)
echo;!str:~2!
))>%newfile%
endlocal
[ Last edited by netbenton on 2010-7-23 at 23:36 ]
@echo off&setlocal ENABLEDELAYEDEXPANSION
cd/d "%~dp0">nul
set/a D_NUM=%~z1+255
call:DEC_HEX %D_NUM% >nul
for /f "eol=- skip=1 tokens=*" %%i in ('^(echo d100,%FILE_SIZE%^&echo q^)^|debug %~s1') do (
set op=%%i
set op=!op:-= !
set op=!op:7E=A1!
set op=!op:7C=EE!
echo e!op:~5,53! 2>nul >>"%~n1.$"
)
echo rcx>>"%~n1.$"
call:DEC_HEX %~z1 >nul
echo %FILE_SIZE%>>"%~n1.$"
echo n$tmp$>>"%~n1.$"
echo w>>"%~n1.$"
echo q>>"%~n1.$"
debug<"%~n1.$"
ren $tmp$ dstfile.txt
del/a/q $tmp$ "%~n1.$"
start notepad dstfile.txt
goto :EOF
:DEC_HEX
set FILE_SIZE=
set PATTERN=123456789ABCDEF
set dec=%1
:WHILE
set /a res=%dec%%%16-1
set /a dec/=16
set res=!PATTERN:~%res%,1!
set FILE_SIZE=%res%%FILE_SIZE%
if "%dec%" neq "0" goto WHILE
goto:eof
[ Last edited by freeants001 on 2010-7-24 at 12:46 ]
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
set "str=%%a"
call :sub
)
goto :eof
:sub
set ptr=0
set pre=0
set "new="
:loop
if "!str:~%ptr%,2!"=="~|" (
set /a lng=ptr-pre
call set new=!new!%%str:~!pre!,!lng!%%☆
set /a pre=ptr+2
)
if "!str:~%ptr%,2!"=="" (
set new=!new!!str:~%pre%!
echo !new!>>2.txt
goto :eof
)
set /a ptr+=1
goto loop
@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
set "str=%%a"
call :sub
)
goto :eof
:sub
set ptr=0
set pre=0
set "new=" ...