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

Скрипт ведь переделанный перезаписывает файлы? Остальное лирика.