Windows バッチファイル メモ

・変数にセット
set hoge=hello world
(=の前後に空白入れない)

式の結果をセットしたい場合は
set /a

・変数の展開
echo %hoge%
(forで利用の場合%%)

・ファイルへの書込み


上書き

>>
追記

・バッチでよく使う”%~dpnx1″について

%0: バッチファイル自身
%1: ドラッグしたファイル
~: ダブルクォートを除く
d: ドライブ名
p: パス名
n: ファイル名
x: 拡張子

フルパス
%0

ファイル名(拡張子有)
%~n0%~x0

ファイル名(拡張子無)
%~n0

拡張子
%~x0

ディレクトリ
%~dp0

・使用例

自身のフォルダのパスを追加する。
set PATH=%~dp0;%PATH%

バッチと同じ場所にあるindex.htmlを開く。
start chrome %~dp0index.html

上の階層にあるファイルに書き込み。
set text=Hello World
echo %text%> %~dp0\..\_Path.txt

・ファイル名を日付にする方法

set ymd=%date:~0,4%%date:~5,2%%date:~8,2%

・コマンドプロンプトの文字コード

chcp xxx
Shift JIS:932
EUC-JP:20932
UTF-8:65001

・forコマンド

Lオプション
for /L %%i in (開始,増加量,終了) do

オプション無し(ファイル対象)
for %%i in (*.txt) do

Dオプション(フォルダ対象)
for /d %%i in (*) do

変数に付く%記号は、バッチで使う場合は%%、コマンドプロンプトからの場合は%となるので注意。また通常の環境変数とも違うので注意。

・置き換え

変数名:置換対象の文字列=置換後の文字列
set p=%~dp0
echo datadir = %p:\=/% >> test.txt
のような感じ

バッチファイルサンプル

・カレントディレクトリの移動

・LameにWavを渡す

・Ping送信

・Pingでアドレスの一覧

arp -a xxx
IPアドレスとMACアドレスの対応のキャッシュを表示する。

結果のみ表示したい場合
echo off