디렉토리에서 파일을 가져 와서 전자 메일로 보낼 배치 파일을 작성하려고합니다. 그게 쉽지, 내가 겪고있는 문제는 이메일을 보내야하는 파일이 증가하는 숫자 또는 시간/날짜 스탬프를 가지고 있다는 것입니다. 분명히 시간 문제의 불일치로 인해 파일 이름을 증가하는 숫자로 변경할 수 있습니다. 내 문제는 디렉토리에서 가장 최신 인 파일을 지정하는 방법이나 파일 이름에서 가장 큰 번호를 갖는 파일을 지정하는 것입니다. 나는 잠시 동안 지금을 찾고 있었고 도움이 된 것을 발견하지 못했습니다.숫자가 증가하는 파일을 첨부 할 수있는 배치 파일
@echo off
setlocal
set Port=465
set SSL=True
set From="[email protected]"
set To="[email protected]"
set Subject="Subject"
set Body="Body"
set SMTPServer="smtp.gmail.com"
set User="username"
set Pass="password"
set fileattach="\\networklocation\filename.jpg"
if "%~7" NEQ "" (
set From="%~1"
set To="%~2"
set Subject="%~3"
set Body="%~4"
set SMTPServer="%~5"
set User="%~6"
set Pass="%~7"
set fileattach="%~8"
)
set "vbsfile=%temp%\email-bat.vbs"
del "%vbsfile%" 2>nul
set cdoSchema=http://schemas.microsoft.com/cdo/configuration
echo >>"%vbsfile%" Set objArgs = WScript.Arguments
echo >>"%vbsfile%" Set objEmail = CreateObject("CDO.Message")
echo >>"%vbsfile%" objEmail.From = %From%
echo >>"%vbsfile%" objEmail.To = %To%
echo >>"%vbsfile%" objEmail.Subject = %Subject%
echo >>"%vbsfile%" objEmail.Textbody = %body%
if exist %fileattach% echo >>"%vbsfile%" objEmail.AddAttachment %fileattach%
echo >>"%vbsfile%" with objEmail.Configuration.Fields
echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusing") = 2 ' not local, smtp
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserver") = %SMTPServer%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpserverport") = %port%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpauthenticate") = 1 ' cdobasic
echo >>"%vbsfile%" .Item ("%cdoSchema%/sendusername") = %user%
echo >>"%vbsfile%" .Item ("%cdoSchema%/sendpassword") = %pass%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpusessl") = %SSL%
echo >>"%vbsfile%" .Item ("%cdoSchema%/smtpconnectiontimeout") = 30
echo >>"%vbsfile%" .Update
echo >>"%vbsfile%" end with
echo >>"%vbsfile%" objEmail.Send
cscript.exe /nologo "%vbsfile%"
echo email sent (if variables were correct)
수년 동안이 사이트는 많은 도움을 주었으며 커뮤니티에 감사의 말씀을 전하고 싶습니다.
'dir' 명령의'/ o' 옵션을 사용하여 파일을 최신 날짜 또는 가장 오래된 날짜 순으로 정렬 할 수 있습니다. 그런 다음 나열된 첫 번째 또는 마지막 파일을 사용하십시오. 예 :'for/f "delims ="(dir/a-d/b/od '의) %% A가 "newest = %% ~ fA"를 설정합니까 –
데이비드 감사합니다. 나는 내가 생각한 것만 큼 똑똑하지는 않다./o 옵션으로 파일을 정렬하는 방법을 알 수 있습니다. 나는 그것을 코드로 통합하여 기능을 구현하는 방법에 관해서는 분실되었다. 도움을 주신 것에 대해 다시 한번 감사드립니다. – user3434325