假设我想写一个文字" Check"使用批处理脚本在2000位置(列)和文本文件的每一行。
即使文件包含以偏移量100或小于2000结束的行。
根据我的说法,算法可能是......
for循环一直持续到从第1个位置开始的行结束
内部for循环遍历col编号(偏移量)而不对原始文件执行任何操作,或者如果没有文本添加空格以达到该偏移量
如果达到偏移量,只需添加文字...并继续下一行。
我希望我已经解决了我的问题。请帮我写。 谢谢 Samrat Garai
答案 0 :(得分:1)
@echo off
setlocal enabledelayedexpansion
REM build a 2000-space-char-string:
for /l %%a in (1,1,2000) do set "spc=!spc! "
REM process every line [use a little trick to process empty lines also]
for /f "tokens=1,* delims=]" %%a in ('find /n /v "" test.txt') do (
REM append the long string to the line...
set line=%%b!%spc%
REM ... and cut to 2000 chars, appending "Check":
echo(!line:~0,2000!Check
)
更快的方法来构建一个2047字符串(额外的47个字符在这里没有坏处):
for /l %%a in (1,1,10) do set "spc=!spc! !spc!"
""小技巧"处理空行:find /n
添加行号(如[15]this is line no 15
),因此该行不再为空。 *
之后的第二个标记(]
="其余部分")是原始行。