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

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

Ответить
Настройки темы
CMD/BAT - [решено] Соеденить два файла построчно

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


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

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


Подскажите пожалуйста как соеденить два файла (например 1.txt и 2.txt), не один за одним, а построчно 1-ая строка файла 1 +1-ая строка файла 2 и т.д.

Отправлено: 21:27, 15-03-2011

 

Ветеран


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

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


AlexVong, если Вас устроит WSH (вместо «CMD/BAT») — это Вам сделают быстро.

Отправлено: 22:05, 15-03-2011 | #2



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

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


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


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

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


Iska, очень даже устроит...

Отправлено: 22:34, 15-03-2011 | #3


Ветеран


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

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


AlexVong, если без проверок — то примерно так:
Код: Выделить весь код
Option Explicit

' Enum IOMode
Const ForReading   = 1
Const ForWriting   = 2
Const ForAppending = 8


Dim objFSO

Dim objTSIn1
Dim objTSIn2
Dim objTSOut


Set objFSO   = WScript.CreateObject("Scripting.FileSystemObject")

Set objTSIn1 = objFSO.OpenTextFile(WScript.Arguments.Item(0), ForReading)
Set objTSIn2 = objFSO.OpenTextFile(WScript.Arguments.Item(1), ForReading)
Set objTSOut = objFSO.OpenTextFile(WScript.Arguments.Item(2), ForWriting, True)

Do Until objTSIn1.AtEndOfStream And objTSIn2.AtEndOfStream
	If Not objTSIn1.AtEndOfStream Then
		objTSOut.WriteLine objTSIn1.ReadLine
	End If
	
	If Not objTSIn2.AtEndOfStream Then
		objTSOut.WriteLine objTSIn2.ReadLine
	End If
Loop

objTSOut.Close
objTSIn2.Close
objTSIn1.Close

Set objTSOut = Nothing
Set objTSIn2 = Nothing
Set objTSIn1 = Nothing

Set objFSO   = Nothing

WScript.Quit 0
Вызов:
Код: Выделить весь код
Script.vbs <Путь ко входному файлу 1> <Путь ко входному файлу 2> <Путь к выходному файлу>
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:57, 15-03-2011 | #4


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


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

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


Iska, Скрипт объединяет файлы, но строки получаются не обединенные, а просто идут друг за другом, а надо чтобы с первых строк файла получилась первая строка, со вторых вторая и т.д.

Отправлено: 01:07, 16-03-2011 | #5


Ветеран


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

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


AlexVong, ясно. Значит я неверно Вас понял. Попробуйте так:
Код: Выделить весь код
Option Explicit

' Enum IOMode
Const ForReading   = 1
Const ForWriting   = 2
Const ForAppending = 8


Dim objFSO

Dim objTSIn1
Dim objTSIn2
Dim objTSOut


Set objFSO   = WScript.CreateObject("Scripting.FileSystemObject")

Set objTSIn1 = objFSO.OpenTextFile(WScript.Arguments.Item(0), ForReading)
Set objTSIn2 = objFSO.OpenTextFile(WScript.Arguments.Item(1), ForReading)
Set objTSOut = objFSO.OpenTextFile(WScript.Arguments.Item(2), ForWriting, True)

Do Until objTSIn1.AtEndOfStream And objTSIn2.AtEndOfStream
	If Not objTSIn1.AtEndOfStream Then
		objTSOut.Write objTSIn1.ReadLine
	End If
	
	' Если нужно, чтобы строки отделялись друг от друга пробелом
	' — раскомментируйте следующую строку
	'objTSOut.Write " "
	
	If Not objTSIn2.AtEndOfStream Then
		objTSOut.Write objTSIn2.ReadLine
	End If
	
	objTSOut.WriteLine
Loop

objTSOut.Close
objTSIn2.Close
objTSIn1.Close

Set objTSOut = Nothing
Set objTSIn2 = Nothing
Set objTSIn1 = Nothing

Set objFSO   = Nothing

WScript.Quit 0
Обратите внимание на комментарий «Если нужно, чтобы строки отделялись друг от друга пробелом…» в скрипте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:33, 16-03-2011 | #6


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


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

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


Iska, Спасибо, то что надо!

Отправлено: 19:36, 16-03-2011 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как сравнить два массива не построчно,а целиком? pekich AutoIt 14 04-11-2010 23:36
как соеденить два компа при помощи кабеля ? binders Хочу все знать 10 11-04-2009 17:19
как сравнить два звуковых файла alexra Видео и аудио: обработка и кодирование 8 31-07-2007 00:42
объединить два файла avi VADJ Видео и аудио: обработка и кодирование 6 19-09-2005 06:03
Можно-ли соеденить два компьютера только сетевыми картами ? Guest Сетевые технологии 6 07-12-2003 17:12




 
Переход