Archivo por lotes de Windows, recorrer archivos en una carpeta para crear una lista de parámetros para pasar a otro script

Archivo por lotes de Windows, recorrer archivos en una carpeta para crear una lista de parámetros para pasar a otro script

Tengo un archivo por lotes de Windows que procesa un montón de archivos. Como parte de esto utilizo la siguiente línea:

forfiles /p "%~dpn1%LogDir%" /m "%SupportLog%*" /c "cmd /c logreader.py @file > \"%~dpn1%ParsedLogDir%\@file_Logreader.txt\"

Esto funciona bien, pero esencialmente recorre todos mis archivos (%SupportLog%*) y pasa cada uno por uno al script "logreader.py".

Lo que realmente quiero hacer es crear una lista o parámetro de todos estos archivos y pasarlos todos a la vez al script de Python, de modo que el comando que debería ejecutarse sería similar a:

logreader.py "logfile.log" "logfile.log.1" "logfile.log.3" .....

Intenté usar el comando SET dentro del comando forfile de manera que:

forfiles /p "%~dpn1%LogDir%" /m "%SupportLog%*" /c "cmd /c set PARAMS=%PARAMS%@file "

Sin embargo, cuando ejecuto esto y dejo el ECHO encendido, veo:

forfiles /p "C:\Path\log" /m "logfile.log*" /c "cmd /c set PARAMS=@file "

Lo cual es incorrecto. Y cuando hago "hacer eco de %PARAMS%", no obtengo ningún resultado.

¿Hay alguna manera de lograr esto?

Muchas gracias

Respuesta1

Cambiar las variables de entorno en unniño cmdLa instancia (eso es lo que cmd /cinvoca) no afecta el entorno en el cmdproceso principal. El siguiente fragmento de código podría ayudar:

SETLOCAL EnableExtensions EnableDelayedExpansion
set "LogDir=%~dpn1log"         my guess only
set "SupportLog=logfile.log"   my guess only
set "PARAMS="                  initial value
rem 1st try for /R "%LogDir%" %%a in ("%SupportLog%*") do set PARAMS=!PARAMS! "%%~a"
rem 2nd try for %%a in ("%LogDir%\%SupportLog%*") do set "PARAMS=!PARAMS! "%%~a""
rem 3rd try
for %%a in ("%LogDir%\%SupportLog%*") do set "PARAMS=!PARAMS! "%%~nxa""
echo logreader.py %PARAMS%

Tenga en cuenta que imperativo logreader.pyse edita simplemente echocon fines de depuración.

Sin embargo, no entiendo el objetivo de >la redirección, lo siento...

Recursos(lectura obligatoria):

Editar:

información relacionada