Windows batファイル 便利コマンド
Last-modified: 2014-03-23 (日) 23:07:37 (3833d)
Top / Windows batファイル 便利コマンド
Windows batファイル 便利コマンド †
あまり知られていない、Windowsのbatファイルの便利コマンドを紹介します。
基本コマンド †
■変数を設定 setコマンドを使います。
set A=1
Aに1を代入
■現在日付、時間を取得
> echo %DATE% 2008/09/09 > echo %TIME% 20:22:54.00
コマンドプロンプトでは、現在日付/時間はそれぞれ変数に入ってます。これをエチョーしてやればとれます。
文字列置換 †
DATE変数に格納されている現在日付から「/」を「.」に置換する。
>echo %DATE% 2008/09/09 >echo %DATE:/=.% 2008.09.09
へー
じゃあ、「/」をとって「YYYYMMDD」にしたい場合は?
>echo %DATE% 2008/09/09 >echo %DATE:/=% 20080909
へー
つまり、こんな感じでやります。
%[置換したい文字列を含む文字列]:[置換前文字列]=[置換先文字列]%
例えば、現在日付から「/」をとった文字列をC_DATE変数に格納したい場合は
>set C_DATE=%DATE:/=% >echo %C_DATE% 20080909
となります。
文字列の一部分だけを抽出 †
例えば、現在日付の「日にち」部分だけほしい場合、こんな感じに書きます。
>echo %DATE% 2008/09/09 >echo %DATE:~8,2% 09
へー
つまり、こんな感じでやります。
%[抽出したい文字列を含む文字列]:^[抽出を開始する文字列]=[抽出する文字数]%
先の例では、先頭から8文字目から2文字を抽出する、って感じになります。
へー
勉強になったでしょ?
batでも色々出来るんです!
ホスト名を変数に代入したい †
そんなときは、以下の一行で、変数「param」にホスト名が代入されます。
>for /F %a in ('hostname') do set param=%a ←これを実行すると >set param=hoge ←これが表示されて、 >echo %param% ←実際に「param」を表示してみると hoge ←ホスト名が表示される
ちなみに、そんなことをしなくても、実は以下の一文で一発です。
>echo %COMPUTERNAME% hoge
なんと、ホスト名は「%COMPUTERNAME%」変数に入っているとは!
よく使う変数名 †
というわけで、よく使う変数名
変数名 | 内容 |
%DATE% | 現在日付が格納される |
%TIME% | 現在時刻が格納される |
%COMPUTERNAME% | Windowsのホスト名が格納される |
ディレクトリだけコピーする †
よく、ディレクトリ構造をひな形としてほかにコピーしたい場合があります。
そんなとき、xcopyのオプションを指定することでディレクトリだけ指定してコピーできます。
- /T : ファイルはコピーせず、ディレクトリのみコピー
実行例は以下の通り。
D:\MyDocument\01_tmp>xcopy /T erd erd_test erd_test は受け側のファイル名ですか、 またはディレクトリ名ですか (F= ファイル、D= ディレクトリ)? D
元ディレクトリツリーは「erd」でコピー先は「erd_test」です。
実際にやるとわかります。
参考URL
リンク †
バッチプログラムのリンク
この記事は秀逸です!