Eu tenho um arquivo de lote que ecoa várias linhas. Eu gostaria de imprimi-lo no arquivo, mas o arquivo mostra apenas 1 linha

2

Isso é o que eu tenho:

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@echo off
set num=0
set "suffix="
for /f "delims=" %%s in ('dir /b /a-d /o:gen') do (
   if /i "%%~xs" equ "!suffix!" (
      set /a num+=1
   ) else (
      if !num! neq 0 echo "!suffix!"     !num!
      set num=1
      set suffix=%%~xs
   )
)

(
echo "%suffix%"    %num% 
) >>"%~dp0%date:~-4,4%-%date:~-10,2%-%date:~-7,2% Logfile.txt"

Pesquisei no fórum e na internet sem resultados. Se importa se alguém me apontar na direção certa?

Editar: encontrou o erro, abaixo anexado para referência.

SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
@echo off
set num=0
set "suffix="
for /f "delims=" %%s in ('dir /b /a-d /o:gen') do (
   if /i "%%~xs" equ "!suffix!" (
      set /a num+=1
   ) else (
      if !num! neq 0 echo "!suffix!"     !num! >>"%~dp0%date:~-4,4%-%date:~-10,2%-%date:~-7,2% Logfile.txt"
      set num=1
      set suffix=%%~xs
   )
)
    
por Koay Chiang Teik 15.12.2014 / 16:46

1 resposta

1

Seu "echo" fica fora do for / do - loop, e é por isso que ele será impresso apenas uma vez. Coloque INTO na seção do da seguinte forma:

for /f "delims=" %%s in ('dir /b /a-d /o:gen') do (
   if /i "%%~xs" equ "!suffix!" (
      set /a num+=1
   ) else (
      if !num! neq 0 echo "!suffix!"     !num!
      set num=1
      set suffix=%%~xs
   )

   echo "%suffix%"    %num% >>"%~dp0%date:~-4,4%-%date:~-10,2%-%date:~-7,2% Logfile.txt"
)
    
por 15.12.2014 / 16:57