KUNISAN.JPブログ - 1357 / 1529 ページ

新規書き込み

PHPでバッチファイルを自動作成

名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2008年5月23日

昨日公開した、『バックアップ用バッチファイル自動作成ツール』のPHPソース(メインの部分のみ)を公開します。バッチファイルに限らず、PHPでテキストファイルを作成することは簡単にできます。使い方によっては、色々なことができそうなのですが、今のところはそんなにネタがないです。HTMLページ自動作成(増殖?)プログラムなんていうのもできそうですが、一歩間違えるとスパム行為になりかねないのでやめておきます。

ではPHPソースをどうぞ。コピーしての使用や改造は構いませんが、動作は全て自己責任でお願いします。

■■バックアップ用バッチファイル自動作成ツール■■
<?php

//フォーム情報取得
$d1 = $_POST[DATA1]; //Windowsの種類
$d2 = $_POST[DATA2]; //外付けドライブ割り当て
$d3 = $_POST[DATA3]; //ユーザー名
$d4 = $_POST[DATA4]; //バックアップの種類

//ユーザー名のエンコード変換(日本語の場合)
$d3 = mb_convert_encoding($d3,"SJIS","UTF-8");

//Windowsの種類による、データフォルダの選択
if ($d1 == 'XP') {
$fold1 = 'Documents and Settings';
} else {
$fold1 = 'Users';
}

//バックアップの種類による、バックアップ用フォルダの削除の有無
if ($d4 == 'kanzen') {
$erac1 = 'RMDIR '.$d2.':\data_backup /S /Q';
} else {
$erac1 = '';
}

//バッチファイルの内容作成
$batch_c = $erac1.'

'.$d2.':
MKDIR '.$d2.':\data_backup\
XCOPY C:\"'.$fold1."\\".$d3.'"\*.* '.$d2.':\data_backup\ /s /h /y /d /c
';

//今現在のタイムスタンプを取得
$timnow = time();

//ファイル名の定義
$b_file = 'backup'.$timnow.'.bat';

//ファイルへの書き込み
$fp = fopen($b_file,'w');
fwrite($fp,$batch_c);
fclose($fp);

//ユーザーエージェント取得
$usera = $_SERVER['HTTP_USER_AGENT'];

//リンク表示のメッセージをブラウザによって変える
$mes ="";
$mes .= (ereg("MSIE",$usera)?'このリンクを右クリックして「対象をファイルに保存」を選択して、バックアップ用バッチファイルをダウンロードしてください。':'');
$mes .= (ereg("Firefox",$usera)?'このリンクを右クリックして「名前を付けてリンク先を保存」を選択して、バックアップ用バッチファイルをダウンロードしてください。':'');
$mes .= (ereg("Safari",$usera)?'このリンクを右クリックして「リンク先のファイルをダウンロード」を選択して、バックアップ用バッチファイルをダウンロードしてください。':'');
if ($mes == "") {
$mes = 'このリンクを右クリックして、対象のファイル(バックアップ用バッチファイル)をダウンロードするようにしてください。';
}

//リンク表示
print '<br><a href="'.$b_file.'">'.$mes.'</a><br><br>';

//ディレクトリハンドルをオープン
$res_dir = opendir( '.' );

//ディレクトリ内のファイル名を1つずつを取得
while( $file_name = readdir( $res_dir ) ){

//batの拡張子の名が入ったファイル名のみを表示
if (eregi('.bat',$file_name)){

//該当キーファイルの作成日時の取得(現在時間-該当ファイル作成日時)
$stam = filectime($file_name);

//作成から600秒以上経過したキーファイルは削除
if (($timnow - $stam) > 600){
unlink($file_name);
}

}
}
//ディレクトリ・ハンドルをクローズ
closedir( $res_dir );

//メッセージ表示
print '
<br>
<b><font color="#ff0000">バックアップ前に設定すること</font></b><br>
<small>コントロールパネルから「フォルダオプション」を開き、「表示」タブを選択します。この中の「すべてのファイルをフォルダを表示する」を選択するようにします。</small><br><br>

<b><font color="#ff0000">バックアップファイルの格納場所</font></b><br>
<small>ダウンロードしたバッチファイルを実行すると、バックアップファイルは全て外付けハードディスクの"data_backup"というフォルダの中に格納されます。</small><br><br>
';

if ($d1 == 'XP') {
print '
<b><font color="#ff0000">各バックアップファイルの場所(WindowsXPの場合)</font></b><br>
<small>・マイ ドキュメント: "'.$d2.':\data_backup\My Documents"</small><br>
<small>・デスクトップ上のファイル: "'.$d2.':\data_backup\デスクトップ"</small><br>
<small>・OutlookExpressのメール: "'.$d2.':\data_backup\Local Settings\Application Data\Identities\{(任意のコード)}\Microsoft\Outlook Express"</small><br>
<small>・OutlookExpressのアドレス帳: "'.$d2.':\data_backup\Application Data\Microsoft\Address Book"</small><br>
<small>・InternetExplorerのお気に入り: "'.$d2.':\data_backup\Favorites"</small><br>
<br>
';
} else {
print '
<b><font color="#ff0000">各バックアップファイルの場所(WindowsVistaの場合)</font></b><br>
<small>・ドキュメント: "'.$d2.':\data_backup\Documents"</small><br>
<small>・ミュージック: "'.$d2.':\data_backup\Music"</small><br>
<small>・ピクチャ: "'.$d2.':\data_backup\Pictures"</small><br>
<small>・ビデオ: "'.$d2.':\data_backup\Videos"</small><br>
<small>・アドレス帳: "'.$d2.':\data_backup\Contacts"</small><br>
<small>・デスクトップ上のファイル: "'.$d2.':\data_backup\Desktop"</small><br>
<small>・Windowsメール: "'.$d2.':\data_backup\AppData\Local\Microsoft\Windows Mail\Local Folders"</small><br>
<small>・InternetExplorerのお気に入り: "'.$d2.':\data_backup\Favorites"</small><br>
<br>
';
}

?>
■■■■■■■■■■■■■■■■■■■■■■■■■





PHP関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / PHP REVERSI(オセロもどき)の続き / PHP REVERSI(リバーシ) - オセロもどきゲームの公開 / PHP版-簡易アクセスブロック(IPアドレス、ホスト名、OS、ブラウザ名で制御) / ...(記事連続表示)

[改訂版] PHP ポケットリファレンス (Pocket reference) (単行本)
[改訂版] PHP ポケットリファレンス (Pocket reference) (単行本)をAmazon.co.jpでチェック