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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Копирование файлов

Ответить
Настройки темы
[решено] Копирование файлов

Пользователь


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

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


Нужно скопировать несколько файлов в один, как в CMD (copy *.* 1.txt). Однако команда FileCopy файлы объединять не хочет. Как проще сделать? Передать строку copy... как аргумент CMD в SHellExecute не получилось...
Спасибо!

Отправлено: 14:05, 03-05-2010

 

Аватара для madmasles

Ветеран


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

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


AlexM,
А так попробуйте:
Код: Выделить весь код
RunWait(@ComSpec & " /C COPY *.* 1.txt", "", @SW_HIDE)
Или так:
Код: Выделить весь код
#include <File.au3>

$sText = ""
$aFileList = _FileListToArray(@ScriptDir, "*.txt")
If @error = 4 Then
    MsgBox(0, "Ошибка", "Нет файлов *.txt в папке " & @ScriptDir)
    Exit
EndIf

For $i = 1 To UBound($aFileList) - 1
    $hFile = FileOpen(@ScriptDir & "\" & $aFileList[$i], 0)
    $sText &= FileRead($hFile) & @CRLF ;каждый файл будет записан с новой строки.
    FileClose($hFile)
Next
$hFileNew = FileOpen(@ScriptDir & "\Test\test.txt", 10)
FileWrite($hFileNew, $sText)
FileClose($hFileNew)

Последний раз редактировалось madmasles, 03-05-2010 в 15:18.

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

Отправлено: 14:58, 03-05-2010 | #2



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

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


Пользователь


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

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


Спасибо, получилось!

Отправлено: 16:57, 03-05-2010 | #3


Аватара для madmasles

Ветеран


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

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


AlexM,
Только учтите, что в переменную $sText пишется содержание всех файлов, и пишется в память. Если их объем сопоставим с размером хотя бы 60-80% оперативки, то надо применять другой алгоритм.

Отправлено: 21:27, 03-05-2010 | #4


Аватара для kaster

Старожил


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

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


madmasles, для такого случая есть несколько вариантов
1. если есть гарантия что каждый файл будет меньше хотя бы 500 мб, то копить не все вместе а записывать каждый файл отдельно.
2. читать побайтово, скажем по мегабайту и записывать

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 23:38, 03-05-2010 | #5


Аватара для madmasles

Ветеран


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

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


kaster,
Абсолютно с Вами согласен. То же и имел в виду.

Второе, то есть читать по 1-10 Мб и записывать, ИМХО, самый оптимальный вариант.

Последний раз редактировалось madmasles, 04-05-2010 в 00:27.


Отправлено: 23:43, 03-05-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Копирование файлов

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Беспорядочное копирование файлов Salamander Microsoft Windows 7 0 09-11-2009 11:53
Не работает копирование файлов DSS Microsoft Windows NT/2000/2003 2 07-09-2007 09:55
Копирование файлов с CD ProkVS Автоматическая установка Windows 2000/XP/2003 18 31-03-2007 06:42
Копирование файлов в сети hameg Сетевые технологии 1 18-06-2004 11:06
Копирование файлов с сервера Alexeus Microsoft Windows NT/2000/2003 7 19-05-2004 15:31




 
Переход