2

ラップトップに Web サーバーをインストールし、スクリプトを作成しました。どのブラウザーからでもスクリプトにアクセスすると、スクリプトはhttp://localhost/test/search.php適切に実行されます。特定のツイートを検索、ダウンロード、保存します。

スクリプトを 20 分ごとに自動的に実行するようにしたいのでwget、Windows 用にダウンロードしてインストールしましたC:\Program Files\GnuWin32\bin\wget.exe。次に、次のアクションを使用して Windows タスクを作成しました ([アクション] タブに入力)。

Program/script:
"C:\Program Files\GnuWin32\bin\wget.exe"

Add arguments (optional): -O - -q -t 1 http://localhost/test/search.php

予想どおり、20 分ごとにコマンド ラインが開き、スクリプトが実行されます。しかし、何も起こりません。スクリプトは初期化されていません。私はすべてのパスが正しいと確信しています。スクリプトが実行されない原因は何ですか? コマンドラインは数ミリ秒で消えてしまうので、何を言っているのかわかりません...

4

3 に答える 3

4

への 2 つのパスについて言及していsearch.phpます。1 つは with/testで、もう 1 つは with/tingです。ブラウザと wget で同じものを使用していることを確認してください。

存在しないページをリクエストした場合、 を指定してもエラーは発生しません-q。or に置き換えて、何が問題なの-vかを確認してください。--verbose

c:\gnuwin32\bin\wget.exe -O - --verbose -t 1 http://localhost/test/search.php
--2013-02-25 23:42:03--  http://localhost/test/search.php
Resolving localhost... ::1, 127.0.0.1
Connecting to localhost|::1|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-02-25 23:42:03 ERROR 404: Not Found.

コマンド ラインが機能するようになったら、タスク スケジューラでの実行に集中できます。

タスクは、自分自身または他のアカウントとして実行できます。を使用LOCAL SERVICEすると、ログアウトしていても、パスワードを入力せずに実行できます。選択したアカウントに wget があるディレクトリへのアクセス許可があることを確認してください。

他の人は、スケジュールされたタスクのパスを設定する必要があると述べています。そうしないと、スクリーンショットに示した操作コード (2) が取得されます。wget.exeまた、Windows が依存関係、つまりlibeay32.dllとを確実に見つけられるようにしlibssl32.dllます。

スケジュールされたタスクの作業ディレクトリを設定する.

最後に、単純化します。コマンドラインから php を実行します。上記のリンクは、単純なスクリプトを使用した例です。

コマンド ラインから search.php スタンドアロンを呼び出せるようにコードを記述します。HTTP クライアントと Web サーバーを間に配置する必要はありません。さまざまな Twitter 関連操作 のサンプル スクリプトを次に示します。

于 2013-02-26T05:09:40.247 に答える
1

batファイルを作成し、コメントでBronchaが言及したもののように、そこにあるすべてのコマンドに言及してから、それをWindowsタスクスケジューラに追加してください。

task1.bat
-----------
cd c:\xampp\htdocs\test
php search.php
于 2013-02-17T17:28:58.987 に答える
1

コマンドラインからスクリプトをテストして、機能しているかどうかを確認する必要があります。これを実行しcmdて確認するだけです

"C:\Program Files\GnuWin32\bin\wget.exe" -O - -q -t 1 http://localhost/test/search.php

タスク スケジューラには、設定用のタブが多数あります。履歴タブをチェックして、スケジュールされたタスクの履歴を確認します。ここでは、過去数回のランタイムの終了コードを確認できます。history で次のようなイベントを探します。

イベント ID: 201 タスク カテゴリ: アクション完了

終了コードを確認してくださいaction "C:\Program Files (x86)\GnuWin32\bin\wget.exe" with return code x。ゼロの場合は機能しており、それ以外の整数はエラーを意味します。

使用しているウィンドウを教えてください。また、上記のコマンドの出力を投稿して、タスク スケジューラのエラーを正確に把握できるようにします。

于 2013-02-25T19:54:02.030 に答える