Что нового

Копирование файлов

Timerlan

Новичок
Сообщения
93
Репутация
0
Есть вот такой скриптик в котором выбираешь папку и он копирует папку в в определенное место. Как то нужно переделать этот скрипт чтоб он копировал не папку а тока файл. Сейчас этот скрипт копирует целиком папку, нужно тока файл допустим там 1,2,...n кол-во файлов. Помогите переделать

Код:
#include <file.au3>
$open = FileSelectFolder('','*.*') ; Выбор копируемой папки
Dim $szDrive, $szDir, $szFName, $szExt
$TestPath = _PathSplit($open, $szDrive, $szDir, $szFName, $szExt)

Dim $array[2]

$array[0] = 'as1'
$array[1] = 'as2'

$write = FileOpen('C:\AS\' & 'Логи'&'.log' ,2)
For $i =0 To UBound($Array)-1
If ping($array[$i],250) Then
    FileWriteLine($write,$array[$i]&' Пингуется')
    $tmp = FileOpen(@TempDir & '\' & $array[$i] & '.tmp' ,2)
	FileWriteLine($tmp,'DirCopy('& "'"& $open & "'"& ',' & "'\\" & $array[$i] & "\C$\Users\Public\Desktop\" & $TestPath[3] & "'" &",1)")
    FileClose($tmp)
    Run(@AutoItExe & ' /AutoIt3ExecuteScript ' & @TempDir & '\' & $array[$i] & '.tmp')
   	FileWriteLine($write,"Копирование прошло успешно")
	FileWriteLine($write,"-------------")
Else
    FileWriteLine($write,$array[$i]&' не пингуется')
	FileWriteLine($write,"Файлы не скопировались")
	FileWriteLine($write,"-------------")

EndIf
Next
FileClose($write)
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
в справке функция
_FO_FileSearch
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Чет ваще не могу разобратся в _FO_FileSearch, как переделать, чтоб так же можно было выбирать какие файлы мне копировать(( Помогите... плиз
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
Код:
#include <FileOperations.au3>

$sourch = FileSelectFolder('', '')
$dest = FileSelectFolder('', '')

$result = _FO_FileSearch($sourch, '*', '', 0)

For $i = 1 To $result[0]
	$name = StringRegExpReplace($result[$i], '.*\\', '')
	FileCopy($result[$i], $dest & '\' & $name)
Next
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Код:
#include <FileOperations.au3>

$sourch = FileSelectFolder('', '')
$dest = FileSelectFolder('', '')

$result = _FO_FileSearch($sourch, '*', '', 0)

For $i = 1 To $result[0]
    $name = StringRegExpReplace($result[$i], '.*\\', '')
    FileCopy($result[$i], $dest & '\' & $name)
Next


А если не нужно как в том скрипте чтоб было в ввиде массива чтоб я мог на разные компы копировать одновременно
Вот типа этого чтоб он также логи создавал и т.д
Код:
Dim $array[2]

$array[0] = 'as1'
$array[1] = 'as2'

$write = FileOpen('C:\AS\' & 'Логи'&'.log' ,2)
For $i =0 To UBound($Array)-1
If ping($array[$i],250) Then
    FileWriteLine($write,$array[$i]&' Пингуется')
    $tmp = FileOpen(@TempDir & '\' & $array[$i] & '.tmp' ,2)
    FileWriteLine($tmp,'DirCopy('& "'"& $open & "'"& ',' & "'\\" & $array[$i] & "\C$\Users\Public\Desktop\" & $TestPath[3] & "'" &",1)")
    FileClose($tmp)
    Run(@AutoItExe & ' /AutoIt3ExecuteScript ' & @TempDir & '\' & $array[$i] & '.tmp')
    FileWriteLine($write,"Копирование прошло успешно")
    FileWriteLine($write,"-------------")
Else
    FileWriteLine($write,$array[$i]&' не пингуется')
    FileWriteLine($write,"Файлы не скопировались")
    FileWriteLine($write,"-------------")

EndIf
Next
FileClose($write)

Реклама
 

joiner

Модератор
Локальный модератор
Сообщения
3,570
Репутация
632
Код:
#include <File.au3>

Dim $szDrive, $szDir, $szFName, $szExt
Dim $array[2]

$array[0] = @ScriptDir & '\1';'сетевой путь к компу 1'
$array[1] =@ScriptDir & '\2' ;'сетевой путь к компу 2'
$sourch = FileOpenDialog('', '', '(*.*)', 1 + 4)
$var_string = StringReplace($sourch, "|", '\', 1)
$path = _PathSplit($var_string, $szDrive, $szDir, $szFName, $szExt)
$replace = StringReplace($var_string, '|', ',' & $path[1] & $path[2])
$result = StringSplit($replace, ',')

For $d = 0 To UBound($array) - 1
For $s = 1 To $result[0]
	$name = StringRegExpReplace($result[$s], '.*\\', '')
	FileCopy($result[$s], $array[$d] & '\' & $name)
	FileWriteLine(@ScriptDir & '\1.txt',$array[$d] & '\' & $name )
Next
Next


можно выбрать один файл или несколько сразу
вообще мы подобное разбирали с тобой
http://autoit-script.ru/index.php?topic=9478.0;
 
Автор
T

Timerlan

Новичок
Сообщения
93
Репутация
0
Чет не хочет работать( не копирует

Код:
#include <File.au3>

Dim $szDrive, $szDir, $szFName, $szExt
Dim $array[2]

$array[0] = @ScriptDir & '\1';'сетевой путь к компу 1'
$array[1] =@ScriptDir & '\2' ;'сетевой путь к компу 2'
$sourch = FileOpenDialog('', '', '(*.*)', 1 + 4)
$var_string = StringReplace($sourch, "|", '\', 1)
$path = _PathSplit($var_string, $szDrive, $szDir, $szFName, $szExt)
$replace = StringReplace($var_string, '|', ',' & $path[1] & $path[2])
$result = StringSplit($replace, ',')

For $d = 0 To UBound($array) - 1
For $s = 1 To $result[0]
    $name = StringRegExpReplace($result[$s], '.*\\', '')
    FileCopy($result[$s], $array[$d] & '\' & $name)
    FileWriteLine(@ScriptDir & '\1.txt',$array[$d] & '\' & $name )
Next
Next



Добавлено:
Сообщение автоматически объединено:

Сорри затупил все нормально работает спасибо тебе
 
Верх