Demon L
Цитата:
Перезапись осуществляется если местом назначения выбирается файл, а не папка. Поэтому так: [more]
Код:
Option Explicit
Dim CheckFile
Dim SourceDir
Dim OutDir
Dim OutAllDir
Dim FSO
Dim SHA
Dim BaseFile
Dim TextArray
Dim CountArray
Dim FilesArray
Dim i
Dim PathFile
Dim TxtFile
Dim Text
Dim TxsFile
Dim n
Dim TextItem
CheckFile = "C:\base.txt"
SourceDir = "C:\test"
OutDir = "C:\OUT"
OutAllDir ="C:\OUT_ALL"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHA = CreateObject("Shell.Application")
Set BaseFile = FSO.OpenTextFile(CheckFile)
TextArray = Split(BaseFile.ReadAll, vbNewLine)
BaseFile.Close
CountArray = UBound(TextArray)
Set FilesArray = SHA.Namespace(SourceDir).Items
FilesArray.Filter 192, "*.tkt"
For i = 0 To FilesArray.Count - 1
PathFile = FilesArray.Item(i).Path
Set TxtFile = FSO.OpenTextFile(PathFile)
Text = TxtFile.ReadAll
TxtFile.Close
TxsFile = FSO.GetBaseName(PathFile) & ".txs"
For n = 0 To CountArray
TextItem = TextArray(n)
If InStr(Text, TextItem) And TextItem <> "" Then
FSO.CopyFile FSO.BuildPath(SourceDir, TxsFile), FSO.BuildPath(OutDir, TxsFile)
FSO.CopyFile PathFile, FSO.BuildPath(OutDir, FSO.GetFileName(PathFile))
Exit For
End If
Next
FSO.CopyFile FSO.BuildPath(SourceDir, TxsFile), FSO.BuildPath(OutAllDir, TxsFile)
FSO.CopyFile PathFile, FSO.BuildPath(OutAllDir, FSO.GetFileName(PathFile))
Next
Цитата:
Когда скрипт раскидывает файлы по папкам все ок но если там уже есть такой файл - вылазит ошибка
Перезапись осуществляется если местом назначения выбирается файл, а не папка. Поэтому так: [more]
Код:
Option Explicit
Dim CheckFile
Dim SourceDir
Dim OutDir
Dim OutAllDir
Dim FSO
Dim SHA
Dim BaseFile
Dim TextArray
Dim CountArray
Dim FilesArray
Dim i
Dim PathFile
Dim TxtFile
Dim Text
Dim TxsFile
Dim n
Dim TextItem
CheckFile = "C:\base.txt"
SourceDir = "C:\test"
OutDir = "C:\OUT"
OutAllDir ="C:\OUT_ALL"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHA = CreateObject("Shell.Application")
Set BaseFile = FSO.OpenTextFile(CheckFile)
TextArray = Split(BaseFile.ReadAll, vbNewLine)
BaseFile.Close
CountArray = UBound(TextArray)
Set FilesArray = SHA.Namespace(SourceDir).Items
FilesArray.Filter 192, "*.tkt"
For i = 0 To FilesArray.Count - 1
PathFile = FilesArray.Item(i).Path
Set TxtFile = FSO.OpenTextFile(PathFile)
Text = TxtFile.ReadAll
TxtFile.Close
TxsFile = FSO.GetBaseName(PathFile) & ".txs"
For n = 0 To CountArray
TextItem = TextArray(n)
If InStr(Text, TextItem) And TextItem <> "" Then
FSO.CopyFile FSO.BuildPath(SourceDir, TxsFile), FSO.BuildPath(OutDir, TxsFile)
FSO.CopyFile PathFile, FSO.BuildPath(OutDir, FSO.GetFileName(PathFile))
Exit For
End If
Next
FSO.CopyFile FSO.BuildPath(SourceDir, TxsFile), FSO.BuildPath(OutAllDir, TxsFile)
FSO.CopyFile PathFile, FSO.BuildPath(OutAllDir, FSO.GetFileName(PathFile))
Next