ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    Windows起動時のバッチ処理

    このエントリーを含むはてなブックマーク はてなブックマーク - Windows起動時のバッチ処理 あとで読む
    Windowsの起動時に、起動させたいソフトがあれば、通常は「スタートアップ」にショートカットを入れておけばよい。
    ソフトを起動させるのではなくて、フォルダのコピーを自動的にやらせたい場合はどうすればいいのか?

    ●バッチ処理
    決まった手順の処理を、コンピューターに自動でやらせたい。

    バッチ処理とは【batch processing】(一括処理) - IT用語辞典

    一定期間(もしくは一定量)データを集め、まとめて一括処理を行う処理方式。
    または、複数の手順からなる処理において、あらかじめ一連の手順を登録しておき、自動的に連続処理を行う処理方式。
    パソコンでは、起動時の環境構築や自動設定、アプリケーションの自動実行などにバッチ処理が用いられる。
    ディスプレイなどの表示、指示に従ってユーザがコンピュータを対話的に処理することをインタラクティブ処理、リアルタイム処理という。



    調べてみると、Windowsで簡単にバッチ処理を実現する方法があった。

    ●Windowsのスクリプト環境
    Windowsには、「VBScript」「JScript」「PowerShell」等のインタープリターが備わっているので、これらのスクリプト言語を使えば、簡単にバッチ処理のプログラムが作れる。

    スクリプト言語 - Wikipedia

    スクリプト言語(scripting language)とは、アプリケーションソフトウェアの動作内容を、台本(script)のように記述し制御するための、簡易的なプログラミング言語である。



    Windows Script Host - Wikipedia

    Windows Script Host(ウインドウズ・スクリプト・ホスト)とは、Microsoft Windowsにおいてテキストファイルに記述したスクリプトを実行するスクリプト実行環境である。WSHと略される。かつてはWindows Scripting Hostと称した。
    Windows 98から搭載された。Unixにおけるシェルスクリプトや、MS-DOSにおけるバッチファイルと似た位置づけの技術である。
    標準では、VBScriptとJScriptを利用できる。



    VBScript - Wikipedia

    VBScript(ブイ・ビー・スクリプト)は、Visual Basic (VB) のサブセット(簡易版)で、マイクロソフト製のスクリプト言語である。Microsoft Windows上やInternet Information Server (IIS)上で動作する。



    古いWHS(Windows Script Host)に代わるツールとして、PowerShellが開発された。

    Excel VBA その3 - 浜村拓夫の世界

    VBのコードの書き方に慣れてくると、VBScriptでちょっとしたツール、バッチプログラムも組めるようになった。
    ただし、MicroSoftの意向では、WSH(VBScript、JScript等のWindows付属のインタープリター)は、今後PowerShell(C#もどきの新しいインタープリター)に置き換えていきたいらしいので、VBScriptは強化される予定はないかもしれない。



    Windows PowerShell - Wikipedia

    Windows PowerShellは、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。
    Windows XP、Windows Vistaに対応しており、Microsoft Windows 7 から標準で含まれている。



    ●フォルダーのコピー
    検索したら、VBScriptのバッチ処理のサンプルコードがあった。

    Windowsのバッチ処理について教えて下さい。 - 人力検索はてな

    2009/02/18 15:39:27

    個人的には、下記のソフトが好きですが、バッチ処理ででできないこともありません。
    http://q.hatena.ne.jp/1222191158#a858594

    バッチ処理は、
    まず、ウィンドウズ付属の、メモ帳※1を立ち上げてください。
    次に、下記文章をコピー・貼り付けしてください。
    >ここから
    WScript.Sleep 30000
    Set wShell = CreateObject("WScript.Shell")
    Set oExecute = wShell.Exec("C:\WINDOWS\system32\calc.exe")
    Set oExecute = wShell.Exec("C:\WINDOWS\system32\mspaint.exe")
    >ここまで
    次に、「start.vbs」で保存してください。
    次に、スタートアップに追加※2してください。
    再起動、もしくは、start.vbsをダブルクリックすると、30秒後に、計算機、ペイントが自動で起動します。



    Windows Scripting Host ファイルの操作 - tomariのホームページ

    ファイルの操作例

    'フォルダのコピー
    Const OverWriteFiles = True
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFolder "C:\Scripts" , "C:\FSO" , OverWriteFiles



    やりたいことは、
    ・Windows起動時に、RAMディスク作成ソフトが「Zドライブ」を作成する。
    ・Zドライブの作成を5秒ほど待つ。
    ・Zドライブに、マイドキュメントにある「Google Chrome Portable」のフォルダーをコピーする。

    上記のサンプルを参考にして、スクリプトを書いてみた。
    ・「start.vbs」というファイルを、マイドキュメント等に作る。
     =ファイルを作成する場所は、どこでもOK
    ・メモ帳で「start.vbs」を開き、以下のコードを記述する。
    ・「start.vbs」のショートカットを作成して、「スタートアップ」のフォルダー内に置く。

    「start.vbs」のソースコード:

    '---------- ---------- ----------
    'Windows起動時のバッチ処理
    '---------- ---------- ----------

    '遅延タイマー・単位:マイクロ秒 1秒=1000マイクロ秒
    WScript.Sleep 5000

    'フォルダのコピー
    '(FileSystemObject).CopyFolder(source, destination[,overwrite])
    'source:コピーするフォルダの指定。省略不可。
    'destination:指定したフォルダのコピー先のフォルダ。省略不可。
    'overwrite:既に存在する場合、上書きするか(true/false)。trueの場合上書き。省略可能、その場合はtrue。

    Const Source = "C:\Documents and Settings\Username\My Documents\GoogleChromePortable"
    Const Destination = "Z:\GoogleChromePortable"
    Const OverWriteFiles = True

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    objFSO.CopyFolder Source , Destination , OverWriteFiles



    パスの「Username」等の箇所は、適宜自分の環境に合わせて読み換えればOK。
    これで、Windows起動後に、時間差でフォルダーを自動的にコピーさせることができました。

    ●バッチ処理ソフト
    Windows起動後に、時間差で処理を実行させるソフトも紹介されていました。

    タイマーを探しています。 - 人力検索はてな

    2008/09/24 04:13:09

    遅延起動させるものです。
    任意の場所に、テキストデータを置き、指定時間後、開くようにすればよいかと思います。
    また、指定時間後にファイルを実行することもできるため、汎用性も高いかと思います。

    説明
    http://www.vector.co.jp/vpack/browse/pickup/pw2/pw002119.html
    ファイル場所
    http://www.vector.co.jp/soft/win95/util/se048060.html



    Vector:StartupEX - お勧めソフトPickUP

    スタートアップの動作を管理して起動を効率化

    Windowsのスタートアップは、プログラムを起動時に自動実行してくれる便利な機能だ。
    しかしたとえば、特定のソフトAが起動していないと動作しないソフトBがあるなら、A→Bの順番で起動しないとまずいし、このソフトAの起動に時間がかかるのなら、ある程度の時間が経過した後にソフトBが起動しなければならないが、スタートアップではこのような設定はできない。
    本ソフトを使用すると、こうした通常では設定できない、スタートアップに関する調整が可能となる。



    StartupEX


    管理するバッチ処理の数が増えてきたら、StartupEXのようなGUIのツールで管理すれば便利そうですね!

    Windows自動処理のためのWSHプログラミングガイド
    五十嵐 貴之
    ソシム
    2009-06

    ★★★★★


    Windows PowerShellクックブック
    Lee Holmes
    オライリージャパン
    2008-10-23

    ★★★★☆

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/774-ededd88b

    FC2Ad