2017-07-31 50 views
0

我已经产生一个.cmd文件,并指示发送通过BLAT电子邮件,然后将其在OpenEdge用作OS-COMMAND VALUE(cCommandFile).OpenEdge OS-COMMAND未能执行

的cCommandFile一个程序具有的内容:

Blat BLATMSG2017073150869.txt -subject "A Test Message" -to <MY-EMAIl-ADDRESS> -server <MY-SMTP-SERVER> -f <SENDER-ADDRESS> -i <FROM-ADDRESS> -log M:\blat.log -timestamp 

命令运行时,将显示错误“'blat'无法识别为内部或外部命令”。

但是定位.cmd文件,并直接从用户运行此命令推出作品promp罚款和预期的电子邮件被发送。

我已经检查在两个命令窗口中的路径(由OpenEdge发起从而未能一个,并且另一个是一个我打开到直接运行.CMD)。两个PATH变量都是相同的。我也尝试生成一个.bat文件,没有改变。

我可以明确地指定其路径运行blat.exe,但它是正确安装并使用到CMD当我运行它的提示,这将是更好地得到它来运行,因为它应该。

+0

你的问题将得到改善。你几乎肯定会在该代码中出现错误。 –

+0

@TomBascom当通过Windows资源管理器单击时,blat.cmd文件运行。我已经添加了上面那个文件的内容,但是由于它直接运行,我会假设它的代码是正确的。 –

+0

我不怀疑CMD/BAT文件本身是否正确,但是我又没有看到CMD或BAT文件 - 只是一个普通的旧命令。这似乎与你的问题说你在做什么不一致。现在忽略这一点 - 如果将“Blat”更改为“C:\ path \ blat”(或其他任何...),会发生什么情况 - 您肯定* cCommandFile包含您认为它包含的内容?在Windows上,“\”特别有害。如果你有硬编码的地方需要逃脱。即cCommandFile =“c:〜\ path”...我认为通过MESSAGE语句验证是有帮助的。 –

回答

0

尝试在您OS-COMMAND语句中使用NO-CONSOLE。 OpenEdge中存在一个错误,您的命令中的引号可能会导致问题。下面是关于它的进展知识库文章:如果你表现出实际的OS-命令代码

http://knowledgebase.progress.com/articles/Article/000034773

+0

我看过这篇文章,看看是否有帮助。不幸的是,即使只是传递'OS-COMMAND“blat”.'也会抛出同样的错误。 –