我需要替换文件中的一行。
一般来说,这段代码可以正常工作:
(这个问题不需要这个块正在做什么的实际细节)。
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %DATA%') do (
if %%a equ %TargetLine% (
echo !insert!>>%filepath%cc.tmp
) else (
if [%%b]==[] (echo.>>%filepath%cc.tmp) else (echo %%b>>%filepath%cc.tmp)
)
)
不幸的是,每一行都被分配给 %%a,它像任何其他变量一样只能存储最大长度 8,192 个字符(感谢 dbenham 的 tidbid,现在正在使用)。
那么,当该行超过 8,192 个字符(本例中为 23,708 个)时,我有什么选择呢?
在你问之前:不,它不能分成新行,它是一个以 Base64 编码的 10k JSON 数组,然后写入 ByteArray。
我认为要走的路是使用正则表达式,这是正确的假设,还是有其他解决方法?
Thanks.
你可以用纯批处理来解决这个问题!
:readLongLine
< longline.tmp (
for /L %%n in (1 1 20) do set /p part[%%n]=
)
之后你的行被分成变量part[1]
.. part[20]
将其写入您可以使用的新文件
:writeLongLine
<nul (
for /L %%n in (1 1 19) do set /p ".=!part[%%n]!"
(echo !part[20]!)
) > longLine2.tmp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)