HiiHahWIKI - making some notes for... -
Windows batファイル 便利コマンド
をテンプレートにして作成
開始行:
*Windows batファイル 便利コマンド [#q6712d95]
あまり知られていない、Windowsのbatファイルの便利コマンド...
***基本コマンド [#na62d700]
■変数を設定
setコマンドを使います。
set A=1
Aに1を代入
■現在日付、時間を取得
> echo %DATE%
2008/09/09
> echo %TIME%
20:22:54.00
コマンドプロンプトでは、現在日付/時間はそれぞれ変数に入...
***文字列置換 [#f39a048a]
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
となります。
***文字列の一部分だけを抽出 [#n704fdc8]
例えば、現在日付の「日にち」部分だけほしい場合、こんな感...
>echo %DATE%
2008/09/09
>echo %DATE:~8,2%
09
へー
つまり、こんな感じでやります。
%[抽出したい文字列を含む文字列]:^[抽出を開始する文字列]=...
先の例では、先頭から'''8文字目'''から'''2文字'''を抽出す...
へー
勉強になったでしょ?
batでも色々出来るんです!
***ホスト名を変数に代入したい [#pc7fc5b9]
そんなときは、以下の一行で、変数「param」にホスト名が代入...
>for /F %a in ('hostname') do set param=%a ←これを実行...
>set param=hoge ←これが表示されて、
>echo %param% ←実際に「param」を表示してみると
hoge ←ホスト名が表示される
ちなみに、そんなことをしなくても、実は以下の一文で一発で...
>echo %COMPUTERNAME%
hoge
なんと、ホスト名は「%COMPUTERNAME%」変数に入っているとは!
***よく使う変数名 [#d1fbf2eb]
というわけで、よく使う変数名
|変数名|内容|
|%DATE%|現在日付が格納される|
|%TIME%|現在時刻が格納される|
|%COMPUTERNAME%|Windowsのホスト名が格納される|
***ディレクトリだけコピーする [#k52421cc]
よく、ディレクトリ構造をひな形としてほかにコピーしたい場...
そんなとき、xcopyのオプションを指定することでディレクトリ...
-/T : ファイルはコピーせず、ディレクトリのみコピー
実行例は以下の通り。
D:\MyDocument\01_tmp>xcopy /T erd erd_test
erd_test は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)? D
元ディレクトリツリーは「erd」でコピー先は「erd_test」です。
実際にやるとわかります。
参考URL
-http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/...
*リンク [#t863fb78]
バッチプログラムのリンク
-[[さすけのプログラミング入門(バッチプログラムの作成):h...
-[[DOSプロンプト活用相談室LOG:http://www.fpcu.jp/dosvcmd/...
-[[Unixでのlsに相当するdirコマンドのオプション一覧(コマン...
-[[DOS コマンド一覧 For:http://pf-j.sakura.ne.jp/program/...
-[[Windowsのコマンドプロンプトやバッチ内で文字列置換を簡...
この記事は秀逸です!
-[[開発に役立つ,BATファイルの書き方・パターン集 (コマ...
-[[BATのforループで,「0埋めされた数値」を連番で出力しよ...
-[[Windowsバッチで 1行で複数の処理を記述:http://winofsql....
-[[Windows バッチファイル : 二重ループの内側のループを...
-[[Windows バッチファイル : テキストファイルにある文字...
終了行:
*Windows batファイル 便利コマンド [#q6712d95]
あまり知られていない、Windowsのbatファイルの便利コマンド...
***基本コマンド [#na62d700]
■変数を設定
setコマンドを使います。
set A=1
Aに1を代入
■現在日付、時間を取得
> echo %DATE%
2008/09/09
> echo %TIME%
20:22:54.00
コマンドプロンプトでは、現在日付/時間はそれぞれ変数に入...
***文字列置換 [#f39a048a]
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
となります。
***文字列の一部分だけを抽出 [#n704fdc8]
例えば、現在日付の「日にち」部分だけほしい場合、こんな感...
>echo %DATE%
2008/09/09
>echo %DATE:~8,2%
09
へー
つまり、こんな感じでやります。
%[抽出したい文字列を含む文字列]:^[抽出を開始する文字列]=...
先の例では、先頭から'''8文字目'''から'''2文字'''を抽出す...
へー
勉強になったでしょ?
batでも色々出来るんです!
***ホスト名を変数に代入したい [#pc7fc5b9]
そんなときは、以下の一行で、変数「param」にホスト名が代入...
>for /F %a in ('hostname') do set param=%a ←これを実行...
>set param=hoge ←これが表示されて、
>echo %param% ←実際に「param」を表示してみると
hoge ←ホスト名が表示される
ちなみに、そんなことをしなくても、実は以下の一文で一発で...
>echo %COMPUTERNAME%
hoge
なんと、ホスト名は「%COMPUTERNAME%」変数に入っているとは!
***よく使う変数名 [#d1fbf2eb]
というわけで、よく使う変数名
|変数名|内容|
|%DATE%|現在日付が格納される|
|%TIME%|現在時刻が格納される|
|%COMPUTERNAME%|Windowsのホスト名が格納される|
***ディレクトリだけコピーする [#k52421cc]
よく、ディレクトリ構造をひな形としてほかにコピーしたい場...
そんなとき、xcopyのオプションを指定することでディレクトリ...
-/T : ファイルはコピーせず、ディレクトリのみコピー
実行例は以下の通り。
D:\MyDocument\01_tmp>xcopy /T erd erd_test
erd_test は受け側のファイル名ですか、
またはディレクトリ名ですか
(F= ファイル、D= ディレクトリ)? D
元ディレクトリツリーは「erd」でコピー先は「erd_test」です。
実際にやるとわかります。
参考URL
-http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/...
*リンク [#t863fb78]
バッチプログラムのリンク
-[[さすけのプログラミング入門(バッチプログラムの作成):h...
-[[DOSプロンプト活用相談室LOG:http://www.fpcu.jp/dosvcmd/...
-[[Unixでのlsに相当するdirコマンドのオプション一覧(コマン...
-[[DOS コマンド一覧 For:http://pf-j.sakura.ne.jp/program/...
-[[Windowsのコマンドプロンプトやバッチ内で文字列置換を簡...
この記事は秀逸です!
-[[開発に役立つ,BATファイルの書き方・パターン集 (コマ...
-[[BATのforループで,「0埋めされた数値」を連番で出力しよ...
-[[Windowsバッチで 1行で複数の処理を記述:http://winofsql....
-[[Windows バッチファイル : 二重ループの内側のループを...
-[[Windows バッチファイル : テキストファイルにある文字...
ページ名: