Analise a saída do diretório com for /f
e use o modificador ~nx
para retornar apenas o nome + extensão
Na linha do cmd:
(for /f "delims=" %A in ('dir /B/S "C:\WinPE_amd64"') do @Echo=%~nxA)>dir.txt
Em um lote, o dobro do sinal percentual do para metavariable
@Echo off
( for /f "delims=" %%A in ('dir /B/S "C:\WinPE_amd64"') do Echo=%%~nxA
) >dir.txt
É uma questão de formatar a preferência (ou para evitar linhas muito longas)
@Echo off
( for /f "delims=" %%A in (
'dir /B/S "C:\WinPE_amd64"'
) do Echo=%%~nxA
) >dir.txt
EDITAR uma alternativa possivelmente mais rápida é um for /r
(For /r "C:\WinPE_amd64" %A in (*) Do @Echo=%~nxA)>dir.txt
Outra alternativa envolvendo um comando powershell
powershell -nop -c "(dir 'C:\WinPE_amd64' -r -file).Name" >dir.txt