Como definir um nome de pasta em uma variável para usá-lo no mesmo arquivo de lote?

0

Eu quero fazer um arquivo de lote, este arquivo de lote deve olhar para fora, em uma pasta com o nome "Rascunho" e para cada subpasta será fazer uma busca por um arquivo .txt "list.txt" e quando encontra este arquivo .txt, Em seguida, será executado uma cópia da pasta "Rascunho" para a pasta "Pronto". Eu escrevi um pequeno script, mas eu tenho alguns problemas.

@echo off
:loop

  for /d %%i in ('dir "C:\Users\ntosis\Desktop\Draft" /ad /o:d /s /b') do ( 
  SET a=%%i
  echo %a%
  )

echo Folder is empty or does not exist
timeout /t 15
goto loop

O problema nesta pequena parte do script é que, a variável "a" não pode salvar o nome da pasta, se eu alterar o echo %a% para echo Hello World , o script imprime apenas uma vez a mensagem e não contanto que o loop seja executado. Alguma ideia?

    
por ntosis 13.07.2015 / 11:38

1 resposta

0

Você provavelmente pode fazer isso de uma só vez:

for /R "C:\Users\ntosis\Desktop\Draft" %G in (list.txt) do ( type "%G" >> "C:\Users\ntosis\Desktop\Ready\list.txt"

Isso concatenará todos os seus arquivos list.txt em uma única lista.txt na pasta Pronto.

Certifique-se de que a sua pasta Pronta não seja uma subpasta da sua pasta Rascunho, caso contrário, você obterá linhas duplicadas.

Se você deseja executar a partir de um arquivo de lote, não se esqueça de dobrar seu%:

for /R "C:\Users\ntosis\Desktop\Draft" %%G in (list.txt) do ( type "%%G" >> "C:\Users\ntosis\Desktop\Ready\list.txt"

Se você quiser copiar toda a estrutura de diretórios de origem com seus arquivos list.txt, então isso é um pouco diferente.

    
por 13.07.2015 / 15:21