0

我有一个批处理文件,它调用一些命令并最终运行一个 powershell 脚本。它手动运行良好,但是在任务调度程序中,我可以看到它完成了一些操作,但实际上并没有运行 powershell 脚本(bat 文件中的最后一个命令)该脚本由它发送的 java 文件创建/覆盖出电子邮件。一切都是更新和必要的,但最终电子邮件永远不会发送。当我在 Win 资源管理器中单击 bat 文件时,它按预期工作。

@echo off
set Pathname="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava"
cd %Pathname%
REM ECHO Directory: C:\Users\administrator\Documents\Notification
CALL IndividualCMDCommands.bat
set Pathname="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src"
cd %Pathname%
XCOPY C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\*.txt C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src /Y
javac -cp .;C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\joda-time-2.9.3\joda-time-2.9.3.jar ParseInfo.java
java -cp .;C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\joda-time-2.9.3\joda-time-2.9.3.jar ParseInfo 
ECHO ParseInfo
REM set Pathname="C:\Users\administrator\Documents\Notification"
REM cd %Pathname%
ECHO Powershell
REM SET ThisScriptsDirectory="C:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\src"
SET PowerShellScriptPath=%TC:\Users\administrator\Documents\EmailNotification\EmailNotificationJava\PSCMD.ps1
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%'";
ECHO Complete
4

2 回答 2

0

它可能与正在执行的用户帐户有关。如果您可以在任务调度程序中配置它,请在您自己的帐户或“交互式用户”下执行您的 bat 文件。然后它应该工作。

电子邮件是如何发送的?也许使用 Outlook?Outlook 在自动化时有一些安全限制。如果它是由用户 A 打开的,它将不允许用户 B 自动化。

于 2016-06-06T21:11:07.163 回答
-1

请尝试以下命令来运行 powershell 脚本。C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -ExecutionPolicy Bypass -file "& '%PowerShellScriptPath%'"

于 2016-06-07T17:26:34.177 回答