CMD/BAT - [решено] Построчное чтение файла и запись в другой

Аватара пользователя
acefoster

CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение acefoster »

Уважаемые господа помогите реализовать следующие. Нужен батник который умел бы следующее. Имеется некоторый файлик в котором множество строк. Имеется шаблон в который должны подставляься эти строки. Вывод должен быть направлен в другой файл и дописыватся до тех пор пока не закончатся строки в файле со списком, после чего бытник прекращает свою работу.



Пример:

1.Файл со списком содержит строки



Код:

Код: Выделить всё

Пете 
Саше
Маше
Кате

2. Файл с шаблоном содержит чтото вида



Код:

Код: Выделить всё

Дядя Стёпа купил %строка_из_файла_со_списком% огромное вкусное мороженное.
%строка_из_файла_со_списком% очень понравилось мороженное.

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



Код:

Код: Выделить всё

Дядя Стёпа купил Пете огромное вкусное мороженное.
Пете очень понравилось мороженное.
Дядя Стёпа купил Саше огромное вкусное мороженное.
Саше очень понравилось мороженное.

И что ещё конкретно интересует... каким должен быть сам шаблон, чтобы реализовать подобное?



Искренне надеюсь на вашу помощь Изображение
Аватара пользователя
i7allia

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение i7allia »

Помогите пожалуйста. Создаю папку по имени IP машины. Терерь надо скопировать все txt файлы в нее. И передать ее по сети скажем \\10.3.1.120\poisk



md d:\temp\poisk\IP

ipconfig > d:\temp\poisk\IP\IP.txt

find /v "Основной шлюз" d:\temp\poisk\IP\IP.txt > d:\temp\poisk\IP\IPvrem.txt

findstr /R "10."* d:\temp\poisk\IP\IPvrem.txt > d:\temp\poisk\ip.txt

DEL | ERASE /Q d:\temp\poisk\IP\*.*

RD /Q d:\temp\poisk\IP



@Echo off

SetLocal EnableDelayedExpansion

CHCP 1251> nul

(For /F "usebackq delims=" %%L In ("d:\temp\poisk\IP.txt") Do CHCP 866 Do Set nm=%%L > nul& md %%L

for %%i in (*.txt,*.txt) do copy "%%i" %%L"\*.*")
Аватара пользователя
acefoster

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение acefoster »

gora преогромнейшее Вам спасибо! очень выручили)
Аватара пользователя
gora

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение gora »

Файл names.txt:



Код:

Код: Выделить всё

Пете 
Саше
Маше
Кате

Файл text.txt:



Код:

Код: Выделить всё

Дядя Стёпа купил %nm% огромное вкусное мороженное.
%nm% очень понравилось мороженное.

Батник:

Код:

Код: Выделить всё

@Echo Off
(For /F %%i In (names.txt) Do (
	Set nm=%%i
	For /F "tokens=*" %%k In (text.txt) Do For /F "tokens=*" %%j In ('Echo %%k') Do Echo %%j
	Echo.
))>out.txt

В файле out.txt нужный (получаемый) текст.
Аватара пользователя
acefoster

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение acefoster »

У меня такой вопрос как решить вот такую проблему есть некий файл содержимое такое

IP:10.10.10.10,ADV

IP:22.22.22.22,ADV

IP:33.33.33.33,WMS

а вот это команда из батника

sqlplus -L user/user(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%IP%)(PORT=1521)))(CONNECT_DATA=(SERVICE _NAME=%name%))

так вот как в подставлять ip из файла и %name% соответствующий этому ip в данном случае ADV и WMS
Аватара пользователя
gora

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение gora »

а IP он не выбирает из файла




Цитата gora:



Echo %%i %%j
CMD/BAT - [решено] Построчное чтение файла и запись в другой




тут когда оставляеш %%i он мне показывает тока ADV И WMS из всего списка а мне еще нужно было чтоб и IP выдрались

Спасибо
Аватара пользователя
ruslanstep1

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение ruslanstep1 »

извените я просто не теми руками запускал руки кривые
Аватара пользователя
ruslanstep1

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение ruslanstep1 »

извените я просто не теми руками запускал руки кривые
Аватара пользователя
ruslanstep1

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение ruslanstep1 »

Цитата ruslanstep1:



а можно этот логировать
CMD/BAT - [решено] Построчное чтение файла и запись в другой




Я не знаю коды возврата этой утилиты, но можете попробовать так:

Код:

Код: Выделить всё

@Echo Off
SetLocal EnableDelayedExpansion
:: Файл-список
Set file=e:\Temp\list 1.txt
>Connect.log (For /F "usebackq tokens=2,3 delims=:," %%i In ("%file%") Do (
Rem	Echo %%i	%%j
Rem	sqlplus -L user/user(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=%%i)(PORT=1521)))(CONNECT_DATA=(SERVICE _NAME=%%j))
	If "!ErrorLevel!"=="0" (Echo Connection OK. %%i	%%j	%%ErrorLevel%%=!ErrorLevel!) Else Echo No Connection. %%i	%%j	%%ErrorLevel%%=!ErrorLevel!
))
Pause>Nul
Аватара пользователя
gora

Re: CMD/BAT - [решено] Построчное чтение файла и запись в другой

Сообщение gora »

у меня токая проблема во время исполнения bat`ка пишет ошибку

(Host was unexpected at this time





Код:

Код: Выделить всё

@echo off
set NLS_LANG=.WE8PC850 
set /p login=Your login: 
set /p pass=Your password:  
Set file=C:\Users\IskhakovR\Desktop\names.txt
>Connect.log (For /F "usebackq tokens=2,3 delims=:," %%i In ("%file%") Do ( 
Echo %%i	%%j 
exit sql.sqlcode | sqlplus -L %login%/%pass%@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = %%i)(PORT = 1521)))(CONNECT_DATA = SERVICE_NAME = %%j)))
 	If "!ErrorLevel!"=="0" (Echo Connection OK. %%i	%%j	%%ErrorLevel%%=!ErrorLevel!) Else Echo No Connection. %%i	%%j	%%ErrorLevel%%=!ErrorLevel! ))
 Pause>Nul
Ответить

Вернуться в «Скриптовые языки администрирования Windows»