« 「ファイルを開く」「名前を付けて保存」ダイアログのプレースバーを変更、拡張する方法 | トップページ | VB6アプリやEXCEL VBAなどのWindowsアプリから標準入出力を使用する方法 »

2006年9月13日 (水)

unixコマンド擬似バッチファイル(nl,wc-l,tail,reverse,head)

バッチファイルでunix風のコマンドを幾つか作ってみました。

nl.CMD 行番号を振る。

@ECHO OFF
REM Usage: nl file
FIND /N /V "" <%1

wc-l.CMD 行数をカウントする。

@ECHO OFF
REM Usage: wc-l file
FIND /C /V "" <%1

tail +n ファイルの先頭からn行目以降を表示する。

MORE +# file ここで、n-1を指定する。

tail.CMD ファイルの末尾からn行を表示する。

@ECHO OFF
REM Usage: tail [-#] file
SETLOCAL
SET /A k=-1
SET n=%~1
IF NOT %n:~0,1%==- GOTO :1
SET /A k=n
SHIFT
:1
(FOR /F %%n IN ('FIND /C /V ""') DO SET n=%%n)<%1
SET /A n=n+k
MORE +%n% %1

reverse.CMD ファイルを逆順に表示する。(revは左右逆だが、これは上下逆)

@ECHO OFF
REM Usage: reverse file
SORT /+10000 %1

head.CMD ファイルの先頭からn行を表示する。

@ECHO OFF
REM Usage: head [-#] file
SETLOCAL
SET /A k=-1
SET n=%~1
IF NOT %n:~0,1%==- GOTO :1
SET /A k=n
SHIFT
:1
(FOR /F %%n IN ('FIND /C /V ""') DO SET n=%%n)<%1
SET /A n=n+k
SORT /+10000 %1 | MORE +%n% | SORT /+10000 | MORE +1

« 「ファイルを開く」「名前を付けて保存」ダイアログのプレースバーを変更、拡張する方法 | トップページ | VB6アプリやEXCEL VBAなどのWindowsアプリから標準入出力を使用する方法 »