Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Перенос файла по содержанию (http://forum.oszone.net/showthread.php?t=231444)

Vertolet 28-03-2012 02:07 1888197

Перенос файла по содержанию
 
Люди, помогите, очень нужно!!! Крайне необходим пример vbs/js скрипта который по содержанию файла будет перекидывать его в определенную папку.Кодировка файла - ANSI. Заранее всем огромное спасибо за помощь.

Iska 28-03-2012 05:38 1888225

Пример…
Код:

Option Explicit

Dim strSourceFile
Dim strDestFolder
Dim strFindString
Dim strContent


strSourceFile = "c:\Source\0001.txt"
strDestFolder = "c:\Destination"
strFindString = "что ищем"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FileExists(strSourceFile) Then
                If .FolderExists(strDestFolder) Then
                        With .GetFile(strSourceFile)
                                With .OpenAsTextStream()
                                        strContent = .ReadAll()
                                        .Close
                                End With
                               
                                If InStr(strContent, strFindString) > 0 Then
                                        .Move strDestFolder & "\"
                                End If
                        End With
                Else
                        WScript.Echo "Destination folder [" & strDestFolder & "] not found"
                End If
        Else
                WScript.Echo "Source file [" & strSourceFile & "] not found"
        End If
End With

WScript.Quit 0


При существовании в папке назначения одноимённого файла попытка перемещения оригинального файла завершится с ошибкой времени исполнения.

Vertolet 28-03-2012 06:22 1888230

Iska, спасибо огромное за помощь! Один вопрос, strSourceFile = "c:\Source\0001.txt" - зачем этот файл источник? Его можно заменить на каталог? Т.е. что бы он в определенной папке искал...

Iska 28-03-2012 06:58 1888248

Цитата:

Цитата Vertolet
Один вопрос, strSourceFile = "c:\Source\0001.txt" - зачем этот файл источник? »

См. выше:
Цитата:

Цитата Vertolet
необходим пример vbs/js скрипта который по содержанию файла будет перекидывать его в определенную папку »

Вы просили пример для файла — я его привёл.

Цитата:

Цитата Vertolet
Его можно заменить на каталог? Т.е. что бы он в определенной папке искал... »

Нет. Это будет другой скрипт:
читать дальше »
Код:

Option Explicit

Dim strSourceFolder
Dim strDestFolder
Dim objFile

Dim strFindString
Dim strContent


strSourceFolder = "c:\Source"
strDestFolder  = "c:\Destination"
strFindString  = "что ищем"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FolderExists(strSourceFolder) Then
                If .FolderExists(strDestFolder) Then
                        For Each objFile In .GetFolder(strSourceFolder).Files
                                With objFile
                                        With .OpenAsTextStream()
                                                strContent = .ReadAll()
                                                .Close
                                        End With
                                       
                                        If InStr(strContent, strFindString) > 0 Then
                                                WScript.Echo "File [" & objFile.Path & "] move into [" & strDestFolder & "]"
                                               
                                                .Move strDestFolder & "\"
                                        End If
                                End With
                        Next
                Else
                        WScript.Echo "Destination folder [" & strDestFolder & "] not found"
                End If
        Else
                WScript.Echo "Source folder [" & strSourceFolder & "] not found"
        End If
End With

WScript.Quit 0


Условие:
Цитата:

Цитата Iska
При существовании в папке назначения одноимённого файла попытка перемещения оригинального файла завершится с ошибкой времени исполнения. »

остаётся тем же.

Vertolet 28-03-2012 08:49 1888281

Iska, ещё раз огромное спасибо очень выручили. И как я понял, проблему с
Цитата:

Цитата Iska
При существовании в папке назначения одноимённого файла попытка перемещения оригинального файла завершится с ошибкой времени исполнения.

никак не решить? Нельзя просто его (файл) пропустить?

Iska 28-03-2012 09:01 1888291

Вы ведь изначально не стали озвучивать, что нужно делать в случае наличия одноимённого файла в целевой папке.

Теперь так:
читать дальше »
Код:

Option Explicit

Dim strSourceFolder
Dim strDestFolder
Dim objFile

Dim strFindString
Dim strContent


strSourceFolder = "c:\Source"
strDestFolder  = "c:\Destination"
strFindString  = "что ищем"

With WScript.CreateObject("Scripting.FileSystemObject")
        If .FolderExists(strSourceFolder) Then
                If .FolderExists(strDestFolder) Then
                        For Each objFile In .GetFolder(strSourceFolder).Files
                                If Not .FileExists(.BuildPath(strDestFolder, objFile.Name)) Then
                                        With objFile
                                                With .OpenAsTextStream()
                                                        strContent = .ReadAll()
                                                        .Close
                                                End With
                                               
                                                If InStr(strContent, strFindString) > 0 Then
                                                        WScript.Echo "File [" & objFile.Path & "] move into [" & strDestFolder & "]"
                                                       
                                                        .Move strDestFolder & "\"
                                                End If
                                        End With
                                End If
                        Next
                Else
                        WScript.Echo "Destination folder [" & strDestFolder & "] not found"
                End If
        Else
                WScript.Echo "Source folder [" & strSourceFolder & "] not found"
        End If
End With

WScript.Quit 0


Vertolet 28-03-2012 09:25 1888308

Спасибо огромное! Просто сразу не учёл всего. Спасибо!

vova_kansk 02-10-2013 00:53 2227146

простите пожалуйста а можно еще чуть допилить
задача немного другая надо бы просмотреть все файлы в директории
если в теле есть "нужное слово1" то сохранить файл в папку1
если в теле есть "нужное слово2" то сохранить файл в папку2
если в теле есть "нужное слово3" то выполнить какунить команду1 (bat или vbs скрипт)
если в теле есть "нужное слово4" то выполнить какунить команду2 (bat или vbs скрипт)
и т.д.

заранее спасибо

Iska 02-10-2013 01:11 2227151

1. Кодировка файлов?
2. Что значит «сохранить файл в папку»?
3. Условия исключающие или последовательные?

Какова глобальная цель сих действ?

vova_kansk 02-10-2013 02:40 2227176

почтовый робот вот здесь все подробненько описал, полезная штука получилась но корявая до ужаса, какнить бы в вид божеский привести но сам я не смогу
http://forum.oszone.net/thread-269145.html
поэтому очень прошу помощи
и трафик кстати жрет немеряно

там почтовик сохраняет почту с сервера в .eml а они открываются оутлукам, есть сетьевая папка в ней пользователи видят свою входящую почту, плюс архивировать легко, но главная фича это запускать разные скриптики и батнички с простой мобилы, главное чтоб интернет был на машине, а когда его нет машина ребутит модем, и чудо случается


Время: 06:06.

Время: 06:06.
© OSzone.net 2001-