トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Windows batファイル 便利コマンド

Last-modified: 2014-03-23 (日) 23:07:37 (1129d)
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

リンク

バッチプログラムのリンク

この記事は秀逸です!