WindowsXPのコマンドプロンプトで動く、UNIXのxargsコマンドもどきのバッチファイル。
以下の内容をxargs.batというファイル名で保存し、パスの通っているディレクトリに置いておくと
「xargs コマンド名 引数〜」で、標準入力の値を引数にしてコマンドを実行できる。
実行例:
C:\WINDOWS>dir /b *.dll | xargs echo twain.dll twain_32.dll vmmreg32.dll
ただし、「xargs コマンド < ファイル
」という使い方は出来ない。→バッチの標準入力
@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% "%*"
」に変えてやれば、空白文字の入ったファイル名に対応させることも出来るだろう。