テンポラリファイルの代わりに環境変数を使う。
もし、テキストファイルの中身をひとまとめにして環境変数にセットし、各行にばらして取り出すことができれば、テンポラリファイルの代わりになります。
ポイントの第一は、
改行文字の扱いは難しいので、代わりにDEL文字を使います。
DEL文字はメモ帳でCtrl+BSキーかAlt+テンキーの0127で入ります。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET Z=
FOR /F "delims=" %%I IN ('dir /b ^|find /n /v ""') DO SET Z=!Z!%%I
:LOOP
FOR /F "delims= tokens=1*" %%I IN ("!Z!") DO (
SET L=%%I
FOR /F "delims=[]" %%K IN ("%%I") DO ECHO=%%K !L:*]=!
SET Z=%%J
)
IF DEFINED Z GOTO :LOOP
他のポイントは、
遅延展開
空行認識と行番号付加のために、find /n /v ""
1行取り出しは、FOR /F "delims= tokens=1*"
行番号取り出しは、FOR /F "delims=[]"
行番号除去は、!L:*]=!
終端判定は、IF DEFINED Z
各ポイントには、それぞれ理由があります。