программирование пакетных файлов Windows - PullRequest
2 голосов
/ 17 сентября 2010

Я хочу написать строку текста в определенной строке в уже существующем текстовом файле, используя программирование пакетного файла dos в Windows XP. Также я хочу ввести номер строки от пользователя. Любая помощь будет оценена.

Ответы [ 3 ]

4 голосов
/ 17 сентября 2010

Пример запроса пользователя:

:MENU

    SET /P TYPE=Type the line number and press enter:
    if "%TYPE%"=="1"                               goto ONE
    if "%TYPE%"=="2"                               goto TWO
    if "%TYPE%"=="3"                               goto THREE
    if "%TYPE%"=="4"                               goto FOUR
    if "%TYPE%"=="5"                               goto FIVE
    goto MENU

Примечание. Команда FOR с опцией L может генерировать большую перекрестную проверку;для получения дополнительной информации введите c:> FOR /?

FOR / L% переменная IN (начало, шаг, конец) Команда DO [параметры команды]

The set is a sequence of numbers from start to end, by step amount.
So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
generate the sequence (5 4 3 2 1)

FOR / L %%IN (1,1,1000) DO, если "% TYPE%" == "%% a" перейти: VALIDNUM

@echo off
rem this only prompts the user for a number

set VALIDNUM=

:MENU
cls
echo.
echo.
If NOT "%VALIDNUM%"=="" echo the number is %VALIDNUM%
echo.

SET /P TYPE=Type a line number and press enter:

FOR /L %%a IN (1,1,1000) DO if "%TYPE%"=="%%a" set VALIDNUM=%TYPE%

goto MENU
3 голосов
/ 17 сентября 2010

Может быть, вы не должны использовать пакет для этого. Или, может быть, вы вообще не должны использовать пакет.

Может быть, что-то подобное может работать. я не проверял это во всем.

setlocal enabledelayedexpansion
SET /a counter=0
echo. > newfile
for /f "usebackq delims=" %%a in (yourfile.txt) do (
    if "!counter!"=="%1" echo "YOUR SPECIFIC LINE" >> newfile
    if not "!counter!"=="%1" echo %%a >> newfile
    set /a counter+=1
)
move newfile yourfile.txt

Но это не будет работать, если вы используете DOS, а не версию Windows NT. (отредактируйте теги, если вы используете windows, а не dos)

2 голосов
/ 18 января 2011

Пользователь Расширенный редактор пакетных файлов Dr.Batcher , вы сможете создавать такие скрипты всего за несколько кликов!

...