Что нового

Объединить все файлы из основной папки и вложенных

AlexVong

Новичок
Сообщения
112
Репутация
1
Версия AutoIt: 3.3.12.0

Описание:

Добрый день.
Прошу помощи в решении задачи - появилась необходимость в папке "Content.IE5", а именно в ее подпапках
разыскать все файлы с расширением *.zakrprn и объединить их в один текстовый файл.
Примечания:
У файлов *.zakrprn может совпадать имя, но содержимое у них разное. Имена подпапок неизвестно и уровень вложения равен 1.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#Include <FileOperations.au3>
$array = _FO_FileSearch('путь к основной папке','*.zakrprn')
$fo = FileOpen('файл, в который пишем',1)
For $i = 1 To $array[0]
	$fr = FileRead($array[$i])
	FileWrite($fo,$fr & @CRLF)
Next
FileClose($fo)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
joiner
FileOperations.au3 это не стандартная библиотека, поэтому желательно указывать ссылку на скачивание.
 

Z_Lenar

Продвинутый
Сообщения
209
Репутация
52
AlexVong
Вариант:
Код:
$PID = Run(@ComSpec & ' /C dir /A HS /S /D *.zakrprn', @HomeDrive & @HomePath & '\Local Settings\Temporary Internet Files\Content.IE5', @SW_HIDE, 2)
ProcessWaitClose($PID)
If @extended <> 0 Then
	ProcessClose($PID)
	ConsoleWrite('!>Файлы не найдены' & @CRLF)
	Exit
EndIf
$sBuff = StdoutRead($PID)
ProcessClose($PID)
$aLines = StringSplit($sBuff, @CRLF, 3)
$sPath = ''
$sOut = ''
For $i = 0 To UBound($aLines) - 1
	$aTmp = StringRegExp($aLines[$i], '(.:\\.*)', 1)
	If Not @error Then
		$sPath = $aTmp[0]
		ContinueLoop
	EndIf
	$aTmp = StringRegExp($aLines[$i], '(.*\.zakrprn)', 1)
	If Not @error Then
		$sOut &= FileRead($sPath & '\' & $aTmp[0])
	EndIf
Next
ConsoleWrite($sOut)
; FileWrite(..., $sOut)
 
Верх