Windowsでバッククックを使用してプログラムを呼び出すPerlスクリプトがあります。コマンドプロンプトで実行するとうまく動作します。私はWindowsのタスクスケジューラを使用してそれを実行すると動作を停止します。これはActiveState Perlを使用したWindows Server 2008 x64上にあります。それは私にエラーが内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されていない私に与えます。プログラムの完全なパスを指すようにプログラムへの呼び出しを変更すると、再び機能します。Windowsタスクスケジューラを介して実行されるPerlスクリプトから生成されたプロセスは、%PATH%にアクセスできない%PATH%
backticksを含むタスクスケジュールで実行されると、Windows環境変数、特に実行時の%PATH%変数が表示されなくなります。バックティックによって生成されたシェルから何かが欠落している可能性がありますか?別のコマンドを使用してシステムコールを実行する必要がありますか?または、これを解決するタスクスケジューラ設定がありますか?誰かが助けることができるなら、私はそれを感謝します。
私の環境はこれより複雑ですが、これは私がそれを絞り込んだものです。私は実際には、それ自体がプログラムを実行するperlスクリプトを実行するPHPスクリプトを実行するバッチファイルでタスクスケジュールを持っています。私が言及しなかったスタックの残りの部分は%PATH%にアクセスできるように見えるので、バッチファイルは 'php ...'を実行し、phpスクリプトは 'perl ...'を実行し、その後perlスクリプトは失敗しますbackticksを使って 'programname'を実行しているとき。私はバッチファイルとPHPスクリプトを取り除きましたが、動作はまだタスクスケジューラとperlだけで残っています。
に役立ちます:あなたがPATHに設定されて正確に何を見ることができるように同じコンテキストで\ logfile.txt'。 –
ティーン。[Unixの人はこれのように常に問題がある](http://stackoverflow.com/questions/6141708/shell-script-runs-from-command-line-not-cron) – mob
@mob Unixかどうか、私は人々を願っています誰がスケジュールされたタスクを開始するかを設定している* Perlスクリプト*を実行するPHPスクリプトを実行するバッチファイル*真剣に、ねえ、何?ここには多くの動く部分があります。 –