批处理或VBS实现文本内容替换! 帮帮忙啊。。
各位高手一定要帮帮忙啊!一个简单的内容。。批处理或VBS实现:如果a.txt体积大于或等于b.txt就复制a.txt到b.txt如果a.txt小于b.txt就将a.txt...
各位高手一定要帮帮忙啊!一个简单的内容。。
批处理或VBS实现:
如果a.txt体积大于或等于b.txt 就复制a.txt到b.txt
如果a.txt小于b.txt 就将a.txt的内容复制到b.txt的顶端,并根据a.txt的体积删减掉b.txt尾端相应体积的内容(使其体积和原来一样)
试验过了还是不行啊,一定要和原来的体积一样大小。否则文件没办法像预期一样的处理了 还有其它的办法吗 展开
批处理或VBS实现:
如果a.txt体积大于或等于b.txt 就复制a.txt到b.txt
如果a.txt小于b.txt 就将a.txt的内容复制到b.txt的顶端,并根据a.txt的体积删减掉b.txt尾端相应体积的内容(使其体积和原来一样)
试验过了还是不行啊,一定要和原来的体积一样大小。否则文件没办法像预期一样的处理了 还有其它的办法吗 展开
3个回答
展开全部
'[2010-11-8 13:46] Modified
strPathA = "D:\a.txt"
strPathB = "D:\b.txt"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFileA = objFso.OpenTextFile(strPathA,1,False)
Set objFileB = objFso.OpenTextFile(strPathB,1,True)
If objFileA.AtEndOfStream Then
strA = ""
Else
strA = objFileA.ReadAll
End If
If objFileB.AtEndOfStream Then
strB = ""
Else
strB = objFileB.ReadAll
End If
objFileA.Close
objFileB.Close
Set objFileB = objFso.OpenTextFile(strPathB,2,False)
If strA>=strB Then
objFileB.Write strA
Else
iLenB = Len(strB)
strB = strA & strB
strB = Left(strB, Len(strB)-Len(strA))
objFileB.Write strB
End If
objFileB.Close
Set objFileA = Nothing
Set objFileB = Nothing
strPathA = "D:\a.txt"
strPathB = "D:\b.txt"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFileA = objFso.OpenTextFile(strPathA,1,False)
Set objFileB = objFso.OpenTextFile(strPathB,1,True)
If objFileA.AtEndOfStream Then
strA = ""
Else
strA = objFileA.ReadAll
End If
If objFileB.AtEndOfStream Then
strB = ""
Else
strB = objFileB.ReadAll
End If
objFileA.Close
objFileB.Close
Set objFileB = objFso.OpenTextFile(strPathB,2,False)
If strA>=strB Then
objFileB.Write strA
Else
iLenB = Len(strB)
strB = strA & strB
strB = Left(strB, Len(strB)-Len(strA))
objFileB.Write strB
End If
objFileB.Close
Set objFileA = Nothing
Set objFileB = Nothing
展开全部
说明:
1,
a.txt和b.txt重要的话自己要备份好
2,
代码和a.txt和b.txt放在同一个文件夹下,一起
3,
相应体积的内容,按一般来说,是理解为保持行数不变
以前多少行,处理后还是多少行
(如果一定要说是字节不变,那就复杂了)
=============xxx.bat代码如下===========================
echo off & color 0b & cls
for /f "tokens=3 delims= " %%i in ('find /v /c "" a.txt') do set aline=%%i
for /f "tokens=3 delims= " %%i in ('find /v /c "" b.txt') do set bline=%%i
if %aline% GEQ %bline% (copy /y a.txt b.txt)&(goto last)
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('type b.txt') do (
if "xx%%a"=="xx" echo.>>a.txt
echo %%a>>a.txt
set /a aline+=1
if !aline! EQU %bline% (copy /y a.txt b.txt)&(goto last)
)
endlocal
:last
1,
a.txt和b.txt重要的话自己要备份好
2,
代码和a.txt和b.txt放在同一个文件夹下,一起
3,
相应体积的内容,按一般来说,是理解为保持行数不变
以前多少行,处理后还是多少行
(如果一定要说是字节不变,那就复杂了)
=============xxx.bat代码如下===========================
echo off & color 0b & cls
for /f "tokens=3 delims= " %%i in ('find /v /c "" a.txt') do set aline=%%i
for /f "tokens=3 delims= " %%i in ('find /v /c "" b.txt') do set bline=%%i
if %aline% GEQ %bline% (copy /y a.txt b.txt)&(goto last)
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('type b.txt') do (
if "xx%%a"=="xx" echo.>>a.txt
echo %%a>>a.txt
set /a aline+=1
if !aline! EQU %bline% (copy /y a.txt b.txt)&(goto last)
)
endlocal
:last
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
MATLAB的命令行也可以操作本机文件,也兼容Widnows批处理和VBScript,其命令行支持复杂文件操作,建议楼主考虑。
我早就说过这种复杂的企业级命令行应用要用MATLAB解决。
我早就说过这种复杂的企业级命令行应用要用MATLAB解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询