замена строки в текстовом файле.
Здравствуйте, интересует вопрос, можно ли bat-ником редактировать Н строку в тексте?
Вот пример файл addy.txt, вот содержимое:
Код:
0.0 0 0
248.676865 90912364 53502936
Где вторая строка не должна быть затронута, а первая строка независимо от написанно замениться на указанный мной текст. Соответственно перезаписав файл\сохранив файл?
Я вообще в этом не разбираюсь и решение для такого в интернете не нашел.
|
modzilla,
если никаких спецсимволов в строках нет, то можно так:
Код:
@echo off
set "f=addy.txt"
echo Введите строку для замены:
set /p str=
<"%f%">$ (echo %str%& (for /f "delims=" %%a in ('more +1') do @echo %%a))& >nul move $ "%f%"
pause
|
Код:
@echo off
set "H:/addy.txt"
echo 248.676865 90912364 53502936:
set /p str=
<"%f%">$ (echo %str%& (for /f "delims=" %%a in ('more +1') do @echo %%a))& >nul move $ "%f%"
pause
переменная среды h:/addy.txt не определена
248.676865 90912364 53502936:
|
Цитата:
Цитата modzilla
переменная среды h:/addy.txt не определена »
|
Сравните:
|
я понял. исправил, думал то местонахождение должно быть
Код:
@echo off
set "f=addy.txt"
echo 301.049835 90414396 30817092:
set /p str=
<"%f%">$ (echo %str%& (for /f "delims=" %%a in ('more +1') do @echo %%a))& >nul move $ "%f%"
pause
не заменяет
|
Цитата:
Цитата modzilla
думал то местонахождение должно быть »
|
Ничто не мешает указать и местонахождение:
Описывайте подробно, что и как делали, что получилось в итоге.
|
в окошке пишет только 301.049835 90414396 30817092: и всё, больше ничего
|
alpap, Если надо заменить только первую строку и если всё равно используется вспомогательный файл, можно и без For, и это надёжнее:
Код:
@Echo Off
Set "Modify=Z:\Box_In\addy.txt"
Set "$=%Modify%.tmp"
Set /P First=Введите строку для замены:
If Not "%First%"=="" (Echo %First%>"%$%"& More +1 "%Modify%">>"%$%"&&Move /Y "%$%" "%Modify%" >nul 2>&1)
modzilla, Результат смотрите в исходном файла - первая строка заменится, если Вы на запрос ввели строку для замены.
|
Цитата:
Цитата modzilla
в окошке пишет только 301.049835 90414396 30817092: и всё, больше ничего »
|
Это не есть «подробно, что и как делали», коллега.
|
Цитата:
Цитата modzilla
в окошке пишет только 301.049835 90414396 30817092: и всё, больше ничего »
|
правильно
мою строку
Код:
echo Введите строку для замены:
вы заменили на
Код:
echo 301.049835 90414396 30817092:
я полагал из побуждений того чтобы не забыть что вводить, такая себе шпаргалка.
но теперь есть подозрение, что происходит (как ему и положено) вывод данной строки, а далее идет приглашение на ввод:
но вы ничего не вводите, а консоль-то ждет, надеется ...
|
modzilla, Если строка не вводится ручками, а жестко прописывается в батнике, то вариант:
Код:
@Echo Off
Set "Modify=Z:\Box_In\addy.txt"
Set "First=301.049835 90414396 30817092:"
Set "$=%Modify%.tmp"
If Not "%First%"=="" (Echo %First%>"%$%"& More +1 "%Modify%">>"%$%"&&Move /Y "%$%" "%Modify%" >nul 2>&1)
|
Цитата:
@Echo Off
Set "Modify=Z:\Box_In\addy.txt"
Set "First=301.049835 90414396 30817092:"
Set "$=%Modify%.tmp"
If Not "%First%"=="" (Echo %First%>"%$%"& More +1 "%Modify%">>"%$%"&&Move /Y "%$%" "%Modify%" >nul 2>&1)
|
этот вариант - работает если заменить локацию нахождения файла.
СПАСИБО вам огромное
|
Время: 16:26.
© OSzone.net 2001-