« 二つのテキストファイルの行同士を接合するバッチ | トップページ | 二つのテキストファイルの行同士を接合するバッチ その2 »

2007年3月 9日 (金)

パイプと遅延展開、CALL :ラベル、@ECHO OFF、SET /Aとの相性

パイプと遅延展開の組み合わせが駄目です。

setlocal enabledelayedexpansion
(
set a=1
echo !a!
)|more

パイプとCALL :ラベルの組み合わせも駄目です。

call :sub | more
goto :eof
:sub
echo 1

パイプと@ECHO OFFの組み合わせも駄目です。

@echo off
(for %%0 in (1 2) do (
echo %%0
)
)|more

パイプとSET /Aの組み合わせも駄目です。

set /a x=1|more

これらは、パイプがなければ正常です。

パイプの前後は、そこだけ、cmd /c"~"で実行されてるような感じです。
バッチ内とは見做されないようです。なので、echo offの効果が及ばない。
バッチ外では、call :ラベルは使えない。set /aは結果がechoされる。
setlocal enabledelayedexpansionも無効。

« 二つのテキストファイルの行同士を接合するバッチ | トップページ | 二つのテキストファイルの行同士を接合するバッチ その2 »