Obtenha o nome do arquivo para a variável da lista de arquivos

Obtenha o nome do arquivo para a variável da lista de arquivos

No momento, estamos convertendo agendadores. Atualmente sou capaz de fazer transferências de arquivos usando curingas e, em um pós-processo, posso pegar o que foi movido e lê-lo para obter o nome do arquivo que foi movido com o curinga. Não podemos mais fazer isso com o novo agendador de obtenção do nome do processo de postagem.

A pasta deverá ter apenas 1 arquivo após a transferência com esse nome, então por exemplo a pasta "C:\Arquivos\" poderia ter:

Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt

Se eu quiser obter o nome do arquivo "Documento 1079475.pdf" da lista e colocá-lo em uma variável, como você faria isso com scripts em lote no Windows sabendo apenas "Documento * .pdf"?

Eu tentei os comandos abaixo:

dir "%homedrive%\Files\Document*.pdf" > temp.txt
set /p VAR=<temp.txt
echo %VAR%

No entanto, executar a primeira linha retorna ao arquivo:

 Volume in drive C is OSDisk
 Volume Serial Number is D841-0924

 Directory of C:\Files
 08/01/2016  10:05 PM           128,657 Document 1079475.pdf
               1 File(s)        128,657 bytes
               0 Dir(s)  63,461,928,960 bytes free

Então a variável VAR retorna

Volume in drive C is OSDisk

Responder1

Se você estiver fazendo pesquisas específicas e fizer dir sem cabeçalhos e apenas para arquivos como:

dir /b /A:A "%homedrive%\Files\Document*.pdf" > temp.txt

O mesmo comando que você tentou funcionará e fornecerá apenas o nome do arquivo (e uma nova linha).

dir /? 

lhe dará outras opções que podem ser úteis

informação relacionada