Тема: VBS: Не заполняется файл лога
On Error Resume Next
fDir = "D:\WORK\" ' - папка обмена
inNode = "Test" ' - узел где запускаем
outNode = "Z" ' - узел с которым обмениваемся
fileName1 = "Message_" & outNode & "_" & inNode & ".xmlz"
fileName2 = "Message_" & inNode & "_" & outNode & ".xmlz"
nameFTP = "фтп сервер" 'адрес сервера
usrFTP = ""
passFTP = ""
set fso = CreateObject("Scripting.FileSystemObject")
Set WSHshell = WScript.CreateObject("WScript.Shell")
if FileLive(fDir & "obmen_1c.lg", 0) Then ' Если файл уже есть то перемещаем его во временные файлы
Set cScript = fso.OpenTextFile(fDir & "obmen_1c.lg") '-Обозначаем место, где будет открыт файл логов
Else
Set cScript = fso.CreateTextFile(fDir & "obmen_1c.lg") '-Обозначаем место, где будет создан и сохранен файл логов
WScript.Echo "" & Now & "Файл логов создан" ' - если файла загрузки нет
end if
'Set sDir = WSHshell.Environment("Process") ' - находим путь к папке Windows
Set objShell = CreateObject("Shell.Application")
cScript.WriteLine "" & Now & ": Начат обмен"
if FileLive(fDir & fileName1, 0) Then ' Если файл уже есть то перемещаем его во временные файлы
Set objFolder = objShell.NameSpace(fDir + "Temp\") 'место назначения
objFolder.MoveHere fDir & fileName1
WScript.Sleep 5000
cScript.WriteLine "" & Now & ": Файл " & fDir & fileName1 & " перемещен во временные файлы."
Else
End if
Set objFolder = objShell.NameSpace(fDir) 'место назначения
objFolder.CopyHere "ftp://" & usrFTP & ":" & passFTP & "@" & nameFTP & "/" & fileName1
WScript.Sleep 5000
if FileLive(fDir & fileName1, 0) Then ' Если файл скачался запускаем обмен
cScript.WriteLine "" & Now & ": Файл " & fDir & fileName1 & " Скопирован с FTP сервера."
Set objFolder = objShell.NameSpace(fDir + "Temp\") 'место назначения
objFolder.MoveHere fDir & fileName2
cScript.WriteLine "" & Now & ": Файл " & fDir & fileName2 & " перемещен во временные файлы."
'WSHshell.Run " прога ", 0
'WScript.Sleep 30000 'даём время на загрузку выгрузку (30 сек)
WScript.Sleep 5000 'даём время на перемещение (5 сек)
if FileLive(fDir & fileName2, 1) Then ' Если файл сформировался кидаем его на FTP
cScript.WriteLine "" & Now & ": Файл " & fDir & fileName2 & " 1С 8 сформировал файл."
'Set objFolder = objShell.NameSpace(fDir & "Temp\FTP\") 'место назначения
'objFolder.MoveHere "ftp://" & usrFTP & ":" & passFTP & "@" & nameFTP & "/" & fileName2
'WScript.Sleep 5000 'даём время на перемещение (5 сек)
if FileLive(fDir & "Temp\FTP\" & fileName2, 0) then
cScript.WriteLine "" & Now & ": Файл " & fileName2 & " перемещен во временные файлы с FTP."
end if
Set objFolder = objShell.NameSpace("ftp://" & usrFTP & ":" & passFTP & "@" & nameFTP & "/") 'место назначения
objFolder.CopyHere fDir & fileName2
WScript.Sleep 5000 'даём время на закачку (5 сек)
cScript.WriteLine "" & Now & ": Файл " & fileName2 & " скопирован на FTP."
if FileLive(fDir & "Temp\FTP\" & fileName1, 0) Then ' Чистка темпов
Set F = FSO.GetFile(fDir & "Temp\FTP\" & fileName1)
F.Delete
cScript.WriteLine "" & Now & ": Файл удален " & fDir & "Temp\FTP\" & fileName1 & " чистка темпов."
End if
if FileLive(fDir & "Temp\FTP\" & fileName2, 0) Then ' Чистка темпов
Set F = FSO.GetFile(fDir & "Temp\FTP\" & fileName2)
F.Delete
cScript.WriteLine "" & Now & ": Файл удален " & fDir & "Temp\FTP\" & fileName2 & " чистка темпов."
End if
if FileLive(fDir & "Temp\" & fileName1, 0) Then ' Чистка темпов
Set F = FSO.GetFile(fDir & "Temp\" & fileName1)
F.Delete
cScript.WriteLine "" & Now & ": Файл удален " & fDir & "Temp\" & fileName1 & " чистка темпов."
End if
if FileLive(fDir & "Temp\" & fileName2, 0) Then ' Чистка темпов
Set F = FSO.GetFile(fDir & "Temp\" & fileName2)
F.Delete
cScript.WriteLine "" & Now & ": Файл удален " & fDir & "Temp\" & fileName2 & " чистка темпов."
End if
WScript.Echo "" & Now & "Обмен прошел!" ' - если файла загрузки нет
cScript.WriteLine "" & Now & ": Обмен закончился успешно! "
Else
WScript.Echo "" & Now & "Обмен не прошел. Ошибка выгрузки!" ' - если файла загрузки нет
cScript.WriteLine "" & Now & ": Обмен не прошел. Не сформировался файл выгрузки! "
End if
Else
WScript.Echo "" & Now & "Обмен не прошел. Ошибка загрузки!" ' - если файла загрузки нет
cScript.WriteLine "" & Now & ": Обмен не прошел. Не скопирован файл загрузки! "
End if
cScript.Close '- Конец записи в файл логов
Set fso = Nothing
Set cScript = Nothing
Set objFolder = Nothing
Set WSHshell = Nothing
Set F = Nothing
WScript.quit(0) ' -выход
Function FileLive(nameFile, sleep)
set fs = CreateObject("Scripting.FileSystemObject")
if sleep = 1 then
WScript.Sleep 15000 'даём время на скачивание (15 сек)
else
WScript.Sleep 2000 'даём время на скачивание (5 сек)
end if
tempTime = -1
if FS.FileExists(nameFile) then
set f = FSO.GetFile(nameFile)
do while tempTime <> f.DateLastModified
tempTime = f.DateLastModified
WScript.Sleep 5000 'даём время на скачивание (5 сек)
loop
end if
FileLive = FS.FileExists(nameFile)
' WScript.Echo "3 " & FSO.FileExists(nameFile) ' - если файла загрузки нет
Set fs = Nothing
End Function
Скрипт отрабатывает. Но лог пустой. Где я протупил?