|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Ошибка в дате |
|
|
VBS/WSH/JS - [решено] Ошибка в дате
|
Новый участник Сообщения: 11 |
Профиль | Отправить PM | Цитировать
Заранее прошу прощения, если что-то не так написал, т.к. новенький в этом всем)
Подскажите, такая проблема, мне необходимо отправить архивы и отдельные файлы (без архива) по почте, но возникает проблема с датой. Присваиваю daydate так, чтобы дата моего файла была на один день меньше, все остальное не менялось. Указываю пусть к файлу с параметром daydate. Когда дата файла была, например, 22032021_название файла, то проблем с отправкой не было, сейчас когда дата 02032021_название файла, то возникает ошибка (не найден путь к файлу), предполагаю, что это из-за 0 в начале. Подскажите, что можно делать, чтобы отправляло с любой датой, которая стоит в названии файла. Проблемы с 4 и 40 строкой. По всему остальному нет проблем, прописано нормально. Иероглифы, это русский, комментарии, роли не играет Set WshShell = CreateObject("WScript.Shell") Set FSO = CreateObject ("Scripting.FileSystemObject") daydate=left(date,2)-1&left(right(Date,7),2)&right(Date,4) '4 строка 'DT=now 'DateVal=day(DT) & _ 'Right("0" & Month(DT),2) & _ 'Right("0" & Year(DT),2) 'd=datepart("d",data) & datepart("m",data) & datepart("yyyy",data) Dim oMSG Dim oConfig Dim CFields Dim strBody Set oMSG = CreateObject("CDO.Message") Set oConfig = CreateObject("CDO.Configuration") Set CFields = oConfig.Fields Set oMSG.Configuration = oConfig CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "post.***.ru" CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587 CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 CFields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = 0'True CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "***********" 'Login CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "**********" 'pass CFields("urn:schemas:mailheader:content-language") = "windows-1251" CFields.Update oMSG.To = "**********" 'email adress oMSG.From = "**********" 'emailadreas oMSG.Subject = "сводка за "+daydate+"" ' òåìà ïèñüìà oMSG.BodyPart.Charset = "windows-1251" ' êîäèðîâàêà ïèñüìà oMSG.AddAttachment "C:\Users\Desktop\мой день\"daydate"_сводка.rtf" ' 40 строка strBody = "сводка за "+daydate+"." & " C уважением" oMSG.HTMLBody = strBody 'òåëî ïèñüìà oMSG.send 'îòïðàâëÿåì 'îáíóëÿåì ïåðåìåííûå Set CFields = Nothing Set oConfig = Nothing Set oMSG = Nothing MsgBox "Àðõèâû îòïðàâëåíû ïî ýë. ïî÷òå" & "-" & Now(), vbOkonly + vbinformation,"Èíôîðìàöèÿ" |
|
Отправлено: 14:01, 03-03-2021 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Eirstream, выложите текст кода (обрамив его тэгом «code»), а не скриншот кода.
|
Отправлено: 14:05, 03-03-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Что Вы хотели получить вот здесь:
Цитата Eirstream:
|
|
Отправлено: 18:38, 03-03-2021 | #3 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Да, я отправляю в 05-00 утра 03.03.2021 года файлы за 02.03.2021 (название файла 02032021_пампам.doc)
Если, например, файл, назывался 26022021_пампам.doc, то все отправлялось, а с 0 впереди (04022021_пампам.doc), не хочет. Или надо придумать процедуру, чтобы переименовывала файлы в первые числа месяца, либо процедуру, чтобы убирала 0 впереди перед отправкой. Если кто-то поможет, буду рад и благодарен #Iska не пойму как сделать тут ответ на сообщение, цитата не работает) |
Последний раз редактировалось Eirstream, 04-03-2021 в 05:48. Отправлено: 19:50, 03-03-2021 | #4 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать Eirstream, попробуйте
daydate = Replace(DateAdd("d", -1, Date), ".", "") MsgBox Date & vbCrLf & daydate & vbCrLf & "C:\Users\Desktop\мой день\" + daydate + "_сводка.rtf" а Ваш код вааще не ясен: в 4 строке что творится 1-го числа, получим 0-день? ИМХО, 40 строка - вообще неверный синтаксис |
|
------- Последний раз редактировалось megaloman, 04-03-2021 в 08:39. Отправлено: 08:20, 04-03-2021 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Eirstream:
|
|
Отправлено: 12:02, 04-03-2021 | #6 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Я же правильно понял, вашу фразу - daydate = Replace(DateAdd("d", -1, Date), ".", "") вместо своей строки с датой? а Ваш код вааще не ясен: я сам его не понял, взял и готового, который обрезал число до такого 2503_пампам, а мне нужно было 25032021_, я долго пытался и в итоге добавил в конце эту фразу - &right(Date,4). |
|
Отправлено: 13:18, 05-03-2021 | #7 |
Ветеран Сообщения: 2706
|
Профиль | Отправить PM | Цитировать Eirstream, Вы поняли правильно: уберите свою строку, вставьте мою.
Я не вчитываюсь в Ваш код - ставилась задача получить дату вчерашнего дня в формате ддммгггг. Msgbox подтверждает успешность моего подхода? У меня нет возможности запустить Ваш код, чтобы понять, в чем дело, так как у Вас своя инфраструктура (файлы, почта и т д) Цитата Eirstream:
|
|
------- Последний раз редактировалось megaloman, 05-03-2021 в 14:46. Отправлено: 14:38, 05-03-2021 | #8 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Ставилась задача получить дату вчерашнего дня в формате ддммгггг, - все верно. Я сначала, кое что не проверил, потом все подправил и вот, что в итоге. Ваш Msgbox пишет (ваш текст в сообщении не менял): Файл находится D:\Downloads Имя файла: 04032021_Сводка.rtf Сегодня 05032021 (05.03.2021) Сейчас мой код: Set WshShell = CreateObject("WScript.Shell") Set FSO = CreateObject ("Scripting.FileSystemObject") daydate = Replace(DateAdd("d", -1, Date), ".", "") MsgBox Date & vbCrLf & daydate & vbCrLf & "C:\Users\Desktop\мой день\" + daydate + "_сводка.rtf" Dim oMSG Dim oConfig Dim CFields Dim strBody 'создаем объект Message это наше письмо Set oMSG = CreateObject("CDO.Message") 'создаем объект Configuration это настройки соединения Set oConfig = CreateObject("CDO.Configuration") Set CFields = oConfig.Fields Set oMSG.Configuration = oConfig CFields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 CFields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru" 'адрес SMTP сервера CFields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 CFields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 CFields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True CFields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "МОЯ ПОЧТА@yandex.ru" 'Login CFields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "ПАРОЛЬ" 'пароль CFields("urn:schemas:mailheader:content-language") = "windows-1251" CFields.Update oMSG.To = "МОЙ АДРЕС@yandex.ru"'адреса получателей oMSG.From = "МОЙ АДРЕС@yandex.ru" 'адрес отправителя oMSG.Subject = "Сводка за "+daydate+"" ' тема письма oMSG.AddAttachment "D:\Downloads\"+daydate+"_Сводка.rtf" 'путь к вложенному файлу oMSG.BodyPart.Charset = "windows-1251" ' кодировка письма 'формируем HTML текст который будет телом письма strBody = "Сводка за "+daydate+"." & " C уважением ПАМ ПАМ" oMSG.HTMLBody = strBody 'тело письма oMSG.send 'отправляем 'СЕЙЧАС ПРОБЛЕМА В ЭТОЙ СТРОКЕ!!!!!!!!!!!! 'обнуляем переменные Set CFields = Nothing Set oConfig = Nothing Set oMSG = Nothing MsgBox "Архивы и файлы отправлены по эл. почте " & " - " & Now(), vbOkonly + vbinformation,"Информация" СЕЙЧАС ПРОБЛЕМА В 39-ой СТРОКЕ - oMSG.send 'отправляем . Выдает такую ошибку |
|
Последний раз редактировалось Eirstream, 05-03-2021 в 15:21. Отправлено: 15:10, 05-03-2021 | #9 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Iska, приветствую, видел, что когда-то вы уже отправляли или делали код по отправки по e-mail, может подскажите альтернативу моему коду? заранее благодарю)
Сейчас так и не понял, что за ошибка, уже отправляю сообщения вообще без файлов, что-то не дает этот send. )) |
Отправлено: 12:43, 06-03-2021 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Отбор по дате | Cyril | Скриптовые языки администрирования Windows | 9 | 09-01-2020 12:01 | |
CMD/BAT - Архивирование по дате | alex1985khv | Скриптовые языки администрирования Windows | 7 | 06-05-2016 03:28 | |
CMD/BAT - [решено] Удаление по дате | greenOwl | Скриптовые языки администрирования Windows | 12 | 05-07-2013 16:39 | |
CMD/BAT - Удаление файлов по дате | interminable | Скриптовые языки администрирования Windows | 1 | 07-06-2012 15:48 | |
MSFT SQL Server - Выборка по дате | Pulvertum | Программирование и базы данных | 7 | 03-11-2009 00:58 |
|