S-JIS[2007-10-26] 変更履歴

MS-DOSのxargsもどき

WindowsXPのコマンドプロンプトで動く、UNIXのxargsコマンドもどきのバッチファイル。

以下の内容をxargs.batというファイル名で保存し、パスの通っているディレクトリに置いておくと
「xargs コマンド名 引数〜」で、標準入力の値を引数にしてコマンドを実行できる。

実行例:

C:\WINDOWS>dir /b *.dll | xargs echo
twain.dll twain_32.dll vmmreg32.dll

ただし、「xargs コマンド < ファイル」という使い方は出来ない。→バッチの標準入力


xargs.bat

@echo off
rem 引数が無いとき
if "%~1"=="" (
echo usage: stdout-command ^| %0 command
echo by hishidama 2007-10-26
exit/b 1
)

set LIST=
for /f "delims=" %%i in ('findstr .*') do call :add %%i
%* %LIST%
exit/b

:add
if "%LIST%"=="" (
set LIST=%*
) else (
set LIST=%LIST% %*
)

末尾のLISTへの追加処理を「set LIST="%*"」「set LIST=%LIST% "%*"」に変えてやれば、空白文字の入ったファイル名に対応させることも出来るだろう。


自作ソフトへ戻る / バッチメモへ戻る / 技術メモへ戻る
メールの送信先:ひしだま