0

いくつかのコマンドを呼び出し、最終的に powershell スクリプトを実行するバッチ ファイルがあります。手動で正常に実行されますが、タスクスケジューラでは、一部のアクションは完了しますが、実際には powershell スクリプト (bat ファイルの最後のコマンド) を実行していないことがわかります。スクリプトは、送信先の Java ファイルによって作成/上書きされます。メールを送信します。すべてが更新され、必要ですが、最終的にはメールが送信されません。Win エクスプローラーでバット ファイルをクリックすると、期待どおりに動作します。

@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 に答える