KUNISAN.JPブログコメント書き込み※書き込み欄はページ下にあります。 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、ブラウザ名で制御) / ...(記事連続表示)
※HTMLタグ入力は出来ませんのでご了承ください。
|