2017-02-16 67 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

相關問題