2013-06-01 4 views
0

Я пытаюсь отправить вложение электронной почты периодически из пакетного сценария с помощью этого командной строки клиентакомандной работы в командной строке, но не в пакетном файле

http://caspian.dotconf.net/menu/Software/SendEmail

команды для него довольно просто

sendEmail -t [email protected] -u hellp -f [email protected] -m world -s smtp.nus.edu.sg -xu nusstu\a123456 -xp helloworld! -a C:\Users\ll\Desktop\Quotes.docx 

Странная вещь, если я набираю эту строку в командной строке, она отлично работает. Я могу получить электронное письмо с приложением.

Однако, когда я положил его в пакетный сценарий, как

:email 
sendEmail -t [email protected] -u hellp -f [email protected] -m world -s smtp.nus.edu.sg -xu  nusstu\a123456 -xp helloworld! -a C:\Users\ll\Desktop\Quotes.docx 
goto:eof 

и я называю эту подпрограмму в моем пакетного файла, вывод говорит

SMTP:AUTH authentication to smtp.nus.edu.sg:25 failed. 

Я проверил. нет опечатки, может ли кто-нибудь помочь мне в чем разница? почему одна и та же команда работает в командной строке, но вызывает проблемы в файле сценария?

Thanks

+0

Вы используете задержанное расширение? – foxidrive

+0

Да, ты спас мой день! Я поставил это в начале, после удаления, проблема решена! Спасибо! – Rookie

ответ

1

Я считаю, что вы слишком сильно подвергли цензуре свою партию.

Попробуйте выполнить следующие действия:

@ECHO OFF 

setlocal 
echo sendEmail -t [email protected] -u hellp -f [email protected] -m world -s smtp.nus.edu.sg -xu nusstu\a123456 -xp helloworld! -a C:\Users\ll\Desktop\Quotes.docx 
endlocal 

SETLOCAL enabledelayedexpansion 
echo sendEmail -t [email protected] -u hellp -f [email protected] -m world -s smtp.nus.edu.sg -xu nusstu\a123456 -xp helloworld! -a C:\Users\ll\Desktop\Quotes.docx 
echo sendEmail -t [email protected] -u hellp -f [email protected] -m world -s smtp.nus.edu.sg -xu nusstu\a123456 -xp helloworld^^! -a C:\Users\ll\Desktop\Quotes.docx 
goto:eof 

Поскольку ваш пароль содержит !, партия интерпретирует это как переменное имя, если DELAYEDEXPANSION вызываются. Поскольку variablename не установлен, он заменяется на [ничего], и sendtoemail считает, что ваш пароль helloworld\Users\ll\Desktop\Quotes.docx - отсюда сообщение об ошибке.

+0

Спасибо за ответ, проблема в том, что я использовал отложенное расширение. После удаления все в порядке! – Rookie

Смежные вопросы