2017-02-16 9 views
-1

Предположим, я хочу написать текст «Проверить» в позиции 2000 (столбец) и в каждой строке текстового файла с использованием пакетного скрипта.Использование командного сценария, написать текст в конкретном столбце каждой строки в текстовом файле

Даже файл содержит строки, которая заканчивается по смещению 100 или меньше, чем 2000.

По мне алго может быть ...

  1. для цикла идет до конца строки, начиная с 1-й позиции

  2. Внутренний цикл для траверс числа Col (смещение), не делая ничего оригинального файла или если нет текста добавления пробелов, чтобы достичь по этому смещению

  3. Если смещение достигнуто, просто добавьте текст ... и перейдите к следующей строке.

Надеюсь, я очистил свой вопрос. Пожалуйста, помогите мне написать. Спасибо Самрат Гарай

+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

Это сработало, и спасибо. –

+0

Проблема, которая возникает, ее удаление некоторых данных из файла. Можете ли вы объяснить трюк ....? –

+0

У вас есть восклицательные знаки ('!') В вашем файле? – Stephan

 Смежные вопросы

  • Нет связанных вопросов^_^