A alteração de variáveis de ambiente em filho cmd
instance (é o que o cmd /c
invoca) não afeta o ambiente no processo pai cmd
. O próximo snippet de código pode ajudar:
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%
Observe que o logreader.py
obrigatório é meramente echo
ed para fins de depuração.
No entanto, eu não apreendo o alvo do redirecionamento >
, desculpe ...
Recursos (leitura obrigatória):
- (referência de comando) Um índice A-Z da linha de comando do Windows CMD
- (particularidades adicionais) Sintaxe da linha de comando do shell do Windows CMD
- (
%~a
etc. página especial) Argumentos da linha de comando (parâmetros) - (
>>
,2>1
etc. página especial) Redirecionamento
Editar :
- 1a tentativa
for /R
recursiva na árvore de pastas : rejeitada; tentefor %%a
: execute condicionalmente um comando em vários arquivos ; - A segunda tentativa
"%%~a"
fornece o nome completo do arquivo; - 3a tentativa
"%%~nxa"
fornece o nome e a extensão do arquivo (sem caminho).