FileCopy("'\С:\*.ftt'", "D:\GAMES\*.*")
Не получилось.madmasles сказал(а):renom
Код:If FileExists("C:\*.ftt") Then MsgBox(0, '', FileCopy("C:\*.ftt", "D:\GAMES\*.*", 8)) Else MsgBox(0, '', 'No file') EndIf
А так:Дело в том,что так же неизвестно в какой папке лежит данный файл(WINDOWS,Program Files,Documents and Settings и т.д.)
но известно,что в диске С:\
$sDest = 'D:\GAMES\*.*'
$aSearch = _FileSearch(@HomeDrive, '*.ftt', 1)
If $aSearch[0] Then
MsgBox(64, '', 'Найдено файлов *.ftt: ' & $aSearch[0] & ' штук.')
For $i = 1 To $aSearch[0]
If Not FileCopy($aSearch[$i], $sDest, 9) Then
MsgBox(16, 'Error', 'Ошибка копирования файла:' & @LF & $aSearch[$i])
Else
MsgBox(64, 'OK', 'Скопирован файл:' & @LF & $aSearch[$i])
EndIf
Next
Else
MsgBox(16, 'Error', 'Не найдено файлов *.ftt.')
EndIf
Func _FileSearch($sPath, $sFileMask = '*', $iFlag = 0, $iSubdir = 1)
;фильтры для поиска нужно указывать через ;
;$iFlag = 0 - Файлы и папки (по умолчанию)
;$iFlag = 1 - Только файлы
;$iFlag = 2 - Только папки
;$iSubdir = 1 - Искать во всех подкаталогах (по умолчанию)
;$iSubdir = 0 - Искать только в самой папке
Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib, $sSubdir
If $iSubdir Then
$sSubdir = ' /S /B'
Else
$sSubdir = ' /B'
EndIf
Switch $iFlag
Case 1
$sAttrib = ' /A-D'
Case 2
$sAttrib = ' /AD'
Case Else
$sAttrib = ' /A'
EndSwitch
$sOut = StringToBinary('0' & @CRLF, 2)
$aMasks = StringSplit($sFileMask, ';')
For $i = 1 To $aMasks[0]
$hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '"' & $sSubdir & $sAttrib, @SystemDir, @SW_HIDE, 6)
While 1
$sRead = StdoutRead($hDir, False, True)
If @error Then
ExitLoop
EndIf
If $sRead <> "" Then
$sOut &= $sRead
EndIf
WEnd
Next
$aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3)
If @error Then
Return SetError(1)
EndIf
$aOut[0] = UBound($aOut) - 1
Return $aOut
EndFunc ;==>_FileSearch
Сработало,спасибо.madmasles сказал(а):renom [?]
А так:Дело в том,что так же неизвестно в какой папке лежит данный файл(WINDOWS,Program Files,Documents and Settings и т.д.)
но известно,что в диске С:\Код:$sDest = 'D:\GAMES\*.*' $aSearch = _FileSearch(@HomeDrive, '*.ftt', 1) If $aSearch[0] Then MsgBox(64, '', 'Найдено файлов *.ftt: ' & $aSearch[0] & ' штук.') For $i = 1 To $aSearch[0] If Not FileCopy($aSearch[$i], $sDest, 9) Then MsgBox(16, 'Error', 'Ошибка копирования файла:' & @LF & $aSearch[$i]) Else MsgBox(64, 'OK', 'Скопирован файл:' & @LF & $aSearch[$i]) EndIf Next Else MsgBox(16, 'Error', 'Не найдено файлов *.ftt.') EndIf Func _FileSearch($sPath, $sFileMask = '*', $iFlag = 0, $iSubdir = 1) ;фильтры для поиска нужно указывать через ; ;$iFlag = 0 - Файлы и папки (по умолчанию) ;$iFlag = 1 - Только файлы ;$iFlag = 2 - Только папки ;$iSubdir = 1 - Искать во всех подкаталогах (по умолчанию) ;$iSubdir = 0 - Искать только в самой папке Local $sOutBin, $sOut, $aOut, $sRead, $hDir, $sAttrib, $sSubdir If $iSubdir Then $sSubdir = ' /S /B' Else $sSubdir = ' /B' EndIf Switch $iFlag Case 1 $sAttrib = ' /A-D' Case 2 $sAttrib = ' /AD' Case Else $sAttrib = ' /A' EndSwitch $sOut = StringToBinary('0' & @CRLF, 2) $aMasks = StringSplit($sFileMask, ';') For $i = 1 To $aMasks[0] $hDir = Run(@ComSpec & ' /U /C DIR "' & $sPath & '\' & $aMasks[$i] & '"' & $sSubdir & $sAttrib, @SystemDir, @SW_HIDE, 6) While 1 $sRead = StdoutRead($hDir, False, True) If @error Then ExitLoop EndIf If $sRead <> "" Then $sOut &= $sRead EndIf WEnd Next $aOut = StringRegExp(BinaryToString($sOut, 2), '[^\r\n]+', 3) If @error Then Return SetError(1) EndIf $aOut[0] = UBound($aOut) - 1 Return $aOut EndFunc ;==>_FileSearch
Не стыкуется с этим:Можно ли осущ. то же самое действие не подключая сюда "Поиск" ?
Дело в том,что так же неизвестно в какой папке лежит данный файл(WINDOWS,Program Files,Documents and Settings и т.д.)
но известно,что в диске С:\
А,все,ясно...madmasles сказал(а):renom [?]
Не стыкуется с этим:Можно ли осущ. то же самое действие не подключая сюда "Поиск" ?Дело в том,что так же неизвестно в какой папке лежит данный файл(WINDOWS,Program Files,Documents and Settings и т.д.)
но известно,что в диске С:\
If FileExists("G:\") Then;
DirCreate("G:\4210\")
FileSetAttrib('G:\4210\', '+H')
FileOpen('%appdata%\118234\118235\')
FileCopy('118236\*.*', 'G:\4210')
EndIf
@if exist G:\ goto: lala
:lala
@Cd %appdata%\118234\118235\
@xcopy ("118236\*.*" "G:\4210") /E
В папке 118236 создал папку test и кинул туда блокнот,но увы копирование не выходит. :(C:\Documents and Settings\admin\Application Data\118234\118235\118236\
#include <File.au3>
If FileExists('G:\') Then;
DirCreate('G:\4210')
$aFolders = _FileListToArray(@AppDataDir & '\118234\118235\118236', '*', 2)
If IsArray($aFolders) Then
For $i = 1 To $aFolders[0]
DirCopy(@AppDataDir & '\118234\118235\118236\' & $aFolders[$i], 'G:\4210\' & $aFolders[$i], 1)
Next
FileSetAttrib('G:\4210', '+H', 1)
EndIf
EndIf
Это помогло - спасибоmadmasles сказал(а):renom
Так должно скопировать все папкиКод:#include <File.au3> If FileExists('G:\') Then; DirCreate('G:\4210') $aFolders = _FileListToArray(@AppDataDir & '\118234\118235\118236', '*', 2) If IsArray($aFolders) Then For $i = 1 To $aFolders[0] DirCopy(@AppDataDir & '\118234\118235\118236\' & $aFolders[$i], 'G:\4210\' & $aFolders[$i], 1) Next FileSetAttrib('G:\4210', '+H', 1) EndIf EndIf
В первом моем варианте все файлы копирует.
Отлично! Немного изменил под себя, файл копируется.InnI сказал(а):Код:FileCopy(@ScriptDir & "\123\file" & @MDAY & @MON, "\\comp\123")