Windows7でタスクスケジューラを使用する

Windowsで起動時や一定時間ごとに作業を行いたい時は「タスクスケジューラ」を使用することで自動化出来る場合がある。

詳細は
タスク・スケジューラの基本的な使い方(Windows 7/8編)
http://www.atmarkit.co.jp/ait/articles/1305/31/news049.html

タスク・スケジューラで数分おきにプログラムを繰り返し実行する
http://www.atmarkit.co.jp/fwin2k/win2ktips/1332reptsk/reptsk.html
を参照。

タスクスケジューラの画面
task_scheduler01

今回設定した項目
task_scheduler02
task_scheduler03

一旦設定した後にプロパティを開きトリガーを詳細設定。試しに5分毎に実行する。
task_scheduler04

実行結果


D:\Cani\php\time_log>time
現在の時刻: 1:32:11.17
新しい時刻を入力してください:

D:\Cani\php\time_log>dir
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は E0DB-6441 です

D:\Cani\php\time_log のディレクトリ

2013/06/03 01:35 <DIR> .
2013/06/03 01:35 <DIR> ..
2013/06/03 01:35 21 time.log
2013/06/03 01:05 758 time_log.php
2013/06/03 01:03 675 time_log.php~
3 個のファイル 1,454 バイト
2 個のディレクトリ 1,890,682,781,696 バイトの空き領域

D:\Cani\php\time_log>type time.log
2013-06-03 01:35:00

D:\Cani\php\time_log>time
現在の時刻: 1:46:51.59
新しい時刻を入力してください:

D:\Cani\php\time_log>type time.log
2013-06-03 01:35:00
2013-06-03 01:40:00
2013-06-03 01:45:00

D:\Cani\php\time_log>

5分おきにPHPのスクリプトが実行されていることがわかる。
実行するたびにコマンドプロンプトが開くのか画面がちらついた。

 

追記

CLI と CGI
http://php.net/manual/ja/migration5.cli-cgi.php

によると”php-win.exe“を利用すればコンソールは表示されないようだ。

カテゴリー: Windows | タグ: | コメントする

PHPでファイルに書き出す

カレントディレクトリの”time.log“と言うファイルに現在時刻を追記する。”time.log“ファイルが存在しない場合はファイルを作成し、現在時刻を書き出す。

<?php
$filename = 'time.log';
// デフォルトタイムゾーンを指定
date_default_timezone_set('Asia/Tokyo');

try {
  // time.logが存在するか
  if (file_exists($filename)) {
    $fp = fopen($filename, 'ab'); // 追記モードでオープン
  } else {
    $fp = fopen($filename, 'wb'); // 新規作成してオープン
  }
  if ($fp != FALSE) {
    // オープンに成功していたら
    fwrite($fp, date("Y-m-d H:i:s")."\r\n"); // 現在日時を書き出し
    fclose($fp);                             // ファイルを閉じる
  }
} catch (Exception $e) {
  echo 'エラー:', $e->getMessage(), "\n";
}
?>

以下、実行結果


D:\Cani\php\time_log>dir
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は E0DB-6441 です

D:\Cani\php\time_log のディレクトリ

2013/06/03 00:46 <DIR> .
2013/06/03 00:46 <DIR> ..
2013/06/03 00:39 654 time_log.php
1 個のファイル 654 バイト
2 個のディレクトリ 1,890,683,060,224 バイトの空き領域

D:\Cani\php\time_log>php time_log.php

D:\Cani\php\time_log>dir time.log
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は E0DB-6441 です

D:\Cani\php\time_log のディレクトリ

2013/06/03 00:46 21 time.log
1 個のファイル 21 バイト
0 個のディレクトリ 1,890,683,060,224 バイトの空き領域

D:\Cani\php\time_log>type time.log
2013-06-03 00:46:24

D:\Cani\php\time_log>php time_log.php

D:\Cani\php\time_log>type time.log
2013-06-03 00:46:24
2013-06-03 00:46:52

D:\Cani\php\time_log>
カテゴリー: プログラミング | タグ: , | コメントする

PHPでファイルが存在するか調べる

カレントディレクトリに”test.txt“と言うファイルが存在するか調べる。
存在すれば「test.txt is exists.」、存在しなければ「test.txt is not exists.」と表示する。

<?php
$filename = "test.txt";
if (file_exists($filename)) {
  echo $filename . " is exists.";
} else {
  echo $filename . " is not exists.";
}
?>

以下、実行結果。


D:\Cani\php>dir
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は E0DB-6441 です

D:\Cani\php のディレクトリ

2013/06/02 01:20 <DIR> .
2013/06/02 01:20 <DIR> ..
2013/06/02 00:48 156 fileexist.php
1 個のファイル 156 バイト
2 個のディレクトリ 1,890,692,272,128 バイトの空き領域

D:\Cani\php>php fileexist.php
test.txt is not exists.

D:\Cani\php>echo > test.txt

D:\Cani\php>dir test.txt
ドライブ D のボリューム ラベルは ボリューム です
ボリューム シリアル番号は E0DB-6441 です

D:\Cani\php のディレクトリ

2013/06/02 01:20 21 test.txt
1 個のファイル 21 バイト
0 個のディレクトリ 1,890,692,272,128 バイトの空き領域

D:\Cani\php>php fileexist.php
test.txt is exists.

D:\Cani\php>
カテゴリー: プログラミング | タグ: , | コメントする

投稿テスト

投稿テスト。

カテゴリー: 未分類 | コメントする