2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« 二つのテキストファイルの行同士を接合するバッチ | トップページ | 二つのテキストファイルの行同士を接合するバッチ その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 »