Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] создание bat-файла с перезаписью другого .bat

Ответить
Настройки темы
CMD/BAT - [решено] создание bat-файла с перезаписью другого .bat

Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: modzilla
Дата: 24-11-2017
Описание: edit
Здравствуйте.
интересует вот такое вот дело.

Есть у меня, припустим текстовый файл
1.txt с содержимым
Код: Выделить весь код
1.1.1.1
3.3.3.3
где 3.3.3.3 будет перезаписываться
в файле всегда будет две строки, нужна только вторая.

и есть файл 2.bat
с содержимым, припустим.
Код: Выделить весь код
@Echo Off

Set ""
Set "4.4.4.4"
Под это всё мне необходим третий контрольный батник, который будет с
1.тхт строку ставить под set четвертой строкой в 2.bat заместо существующего текста ( в данном примере, нужно что бы стало
Код: Выделить весь код
@Echo Off

Set ""
Set "3.3.3.3"

Такое реально сделать?

Отправлено: 09:59, 24-11-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Изложите первичную задачу.

Отправлено: 10:15, 24-11-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


необходимо по запуску батника вторую строку с 1.тхт, вставить в четвертую строку файла 2.bat

Последний раз редактировалось modzilla, 24-11-2017 в 10:28. Причина: edit


Отправлено: 10:17, 24-11-2017 | #3


Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


modzilla,
Цитата modzilla:
необходимо по запуску батника вторую строку с 1.тхт, вставить в четвертую строку файла 2.bat »
это не ответ, скорее упрямство и занудство (извините за хамство). Тем более смысл строк:
Цитата modzilla:
Set ""
Set "3.3.3.3" »
мне не ясен.
Но, как спрошено, так и отвечено :)
Код: Выделить весь код
@Echo Off
Set "Txt=Z:\Soft_In\1.txt"
Set "Bat=Z:\Soft_In\2.bat"

Set /A NstrBat=4
Set /A NstrTxt=2

Set /A i=%NstrTxt%-1

>"%Bat%.tmp" (
Echo @Echo Off
Echo:
Echo Set ""

FOR /F "usebackq delims=" %%s IN (`more +%i% "%Txt%"`) DO Echo Set "%%s" &GoTo :Cont1)
Del "%Bat%.tmp" 
GoTo :Eof

:Cont1
>>"%Bat%.tmp" (FOR /F "usebackq delims=" %%s IN (`more +%NstrBat% "%Bat%" 2^>nul`) DO Echo %%s)

Move /Y "%Bat%.tmp" "%Bat%" >nul
Скрипт заменяет первые 3 строки в 2.bat на то, что указано в скрипте:
Код: Выделить весь код
Echo @Echo Off
Echo:
Echo Set ""
Четвёртой строкой записывает
Set "вторую строку из 1.txt"
и затем все оставшиеся строки из 2.bat
Единственное, все пустые строки в 2.bat будут съедены.

В Вашей постановке мне кажется какое-то извращение.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 24-11-2017 в 16:35.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:30, 24-11-2017 | #4


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


при таком содержимом
1.txt

1.1.1.1
3.3.3.3

2.bat

@Echo Off

Set ""
Set "var=4.4.4.4"
pause

и коде:
Код: Выделить весь код
@echo off
set "f1=1.txt"
set "f2=2.bat"
set ns=4

<"%f1%" (set /p=& set /p s2=)
<"%f2%">+ (for /f "tokens=1* delims=[]" %%a in ('find /n /v ""') do @echo [%%a]|>nul find "[%ns%]" && (
  echo Set "var=%s2%"
 ) || (
  <nul set /p="%%b"& echo:
 )
)& >nul move+ "%f2%"
pause
получим вывод (новое содержимое)
2.bat

@Echo Off

Set ""
Set "var=3.3.3.3"
pause

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:31, 24-11-2017 | #5


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
alpap
Цитата:
megaloman
Спасибо вам, работают и подходит два варианта! С тонкостями далее сам разберусь, не знал даже с чего начать.
Цитата:
это не ответ, скорее упрямство и занудство (извините за хамство). Тем более смысл строк:
Я пытался просто объяснить как мог кратко и с моим уровнем знания, то, что необходимо было.
Золотой вы человек, Итого вы даже не понимая меня написали именно ТО, что я искал
спасибо вам

Отправлено: 16:38, 24-11-2017 | #6


Ветеран


Contributor


Сообщения: 2710
Благодарности: 1686

Профиль | Отправить PM | Цитировать


modzilla, Почему нельзя в 2.bat непосредственно обратиться к 1.txt и забрать там нужную строку? Например, 2.bat записать в виде
Код: Выделить весь код
@Echo Off
Set "Txt=Z:\Soft_In\1.txt"
Set /A NstrTxt=2

Set /A i=%NstrTxt%-1
FOR /F "usebackq delims=" %%s IN (`more +%i% "%Txt%"`) DO Set "Something="%%s"" &GoTo :Continue
:Continue
Echo %Something%
::::
::::
::::
::::
::::
::::
::::
::::
::::

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:00, 24-11-2017 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] создание bat-файла с перезаписью другого .bat

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание bat файла c помощью другого bat файла GODolubOFF Скриптовые языки администрирования Windows 11 03-01-2016 20:30
CMD/BAT - Завершение одного процесса и запуск другого с помощью bat-файла irbis85 Скриптовые языки администрирования Windows 7 26-05-2015 19:19
CMD/BAT - [решено] Запуск одного bat файла из другого root13 Скриптовые языки администрирования Windows 4 28-10-2013 15:30
CMD/BAT - Запуск BAT файла с правами локального пользователя из сетевого BAT файла Yurii_L Скриптовые языки администрирования Windows 9 05-09-2012 14:27
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? axmed0207 Скриптовые языки администрирования Windows 1 19-01-2012 06:14




 
Переход