今時 MS-DOS のバッチファイル(.bat)を使う機会があったので備忘録を兼ねてメモ。
なお、バッチファイルを作成する際は、文字コードを Shift JIS、改行コードを CR+LF にする必要がある。
使い方は、
のように、表示したいファイル名と行数を引数で渡す。なお、他のバッチファイルの中で head.bat を呼びだす際は、
というように call コマンドを使う。
使い方は、
のように、表示したいファイル名と行数を引数で渡す。
今日の日付を取得
バッチファイル実行時の日付を取得するには、以下のようにすれば良い。@echo off
set YYYY=%date:~-10,4%
set MM=%date:~-5,2%
set DD=%date:~-2,2%
echo 今日は %YYYY% 年 %MM% 月 %DD% 日です。
なお、バッチファイルを作成する際は、文字コードを Shift JIS、改行コードを CR+LF にする必要がある。
head
UNIX コマンドの head のように、テキストファイルの先頭数行を表示するには、以下の内容を head.bat として保存する。@echo off
setlocal enabledelayedexpansion
SET /a counter=0
for /f "usebackq delims=" %%a in (%1) do (
if "!counter!"=="%2" goto exit
echo %%a
set /a counter+=1
)
:exit
使い方は、
head.bat SomeFile.txt 10
のように、表示したいファイル名と行数を引数で渡す。なお、他のバッチファイルの中で head.bat を呼びだす際は、
call head.bat SomeFile.txt 10
というように call コマンドを使う。
tail
head とは逆に、テキストファイルの最後の部分を表示したい場合(UNIX の tail コマンドに相当)は、以下の内容を tail.bat として保存する。@echo off
for /F "tokens=1,2,3 USEBACKQ" %%A in (`find /V /C "" %1`) do set FL=%%C
set /A TAIL=%FL%-%2
more +%TAIL% %1
使い方は、
tail.bat SomeFile.txt 10
のように、表示したいファイル名と行数を引数で渡す。