Te explico como funciona:
Los archivos de texto deben estar en C:\ICR\DATA\
con el for %%a busco en dicha carpeta los archivos de texto que tengan:
C:\ICR\DATA\?_*_*_*.txt
es decir:
que tengan un caracter, un _ , luego varios caracteres, un _ , luego varios caracteres, un _ , luego varios caracteres, con extensión .txt
Luego en for /f %%b (con el for /f leo el contenido de un archivo o una cadena de texto, por eso dentro de for /f %%b coloco ("%%a") entre comillas, es decir con %%b leo el nombre del archivo que me proporciona %%a, y obtengo los dos primeros tokens delimitados por el caracter _ , el primer token será %%a e implicitamente el segundo token será %%c, luego llamo a for /f %%d con el contenido de "%%c" es decir el segundo token: y con "tokens=* delims=0" le borro los caracteres 0 del principio, luego llamo a la etiqueta comando, con el contenido de %%a (el nombre del archivo .txt) %%b con el primer token del nombre antes del _ y %%d que es el segundo token antes del _ con los ceros del principio borrados.
La etiqueta comando recibe en la variable n0 el primer parametro (%%a) y si viene con comillas se las borra (~) en variable n1 recibo el primer token antes del _ (%%b) pero este viene con el nombre, es decir: ejemplo: C:\ICR\DATA\2 y con %~nx2 obtengo solo el nombre y la extensión (puedes borrar la x porque aqui no recibimos extensión) y en variable n2 recibimos el segundo token después del _ con los ceros del principio borrados.
Entonces hacemos el comando:
C:\ICR\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N US PW SERVIDOR B. DE DATOS
que si quieres ver la salida, le pones:
echo C:\ICR\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N US PW SERVIDOR B. DE DATOS>>salida.txt
y verás los comandos que genera.
Puedes comentar el @echo off
::@echo off
o
rem @echo off
y al final del archivo añades un pause, y verás como trabaja.
Te dejo el script más sencillo:
for %%a in (C:\ICR\DATA\?_*_*_*.txt
) do ( for /f "tokens=1,2 delims=_"
%%b in ("
%%a"
) do ( for /f "tokens=* delims=0"
%%d in ("
%%c"
) do (call :
comando %%a %%b %%d) )
)
:comando
C:\ICR\encolador.exe N %n0% Tabla:Entrada %n1% %n2% N US PW SERVIDOR B. DE DATOS