2017-02-16 74 views
-1

假设我想在2000位置(列)和文本文件的每一行使用批处理脚本编写文本“检查”。使用批处理脚本,在文本文件中每行的某一列写入文本

即使该文件包含了结束于偏移100或低于2000

根据我的算法中可能是行...

  1. for循环去,直到行的结尾开始从1号位

  2. 内for循环遍历山坳号(偏移)而不做任何原始文件,或者如果没有文字添加空格要达到该偏移

  3. 如果达到偏移量,只需添加文本...并继续到下一行。

我希望我已经清除了我的问题。请帮我写下它。 谢谢 Samrat的加雷

+0

到目前为止您尝试了什么,您有什么麻烦? – aschipfl

回答

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),所以该行不再是空的。在]之后的第二个标记(* =“剩余行”)是原始行。

+0

它的工作,并thanx很多。 –

+0

发生的问题是,它从文件中删除了一些数据。 你能解释一下这个技巧....? –

+0

你的文件中是否有感叹号('!')? – Stephan

相关问题