Obter nome do arquivo para variável da lista de arquivos

0

No momento, estamos convertendo agendadores. Atualmente, sou capaz de fazer transferências de arquivos usando curingas e, em um processo posterior, posso obter o que foi movido e ler para obter o nome do arquivo do arquivo que foi movido com o curinga. Não podemos mais fazer isso com o novo planejador de obter o nome do processo de postagem.

A pasta deve ter apenas 1 arquivo após a transferência com esse nome; por exemplo, a pasta "C: \ Arquivos \" pode 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, a execução da 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
em3ricasforsale
fonte

Respostas:

1

Se você estiver fazendo pesquisas específicas e fizer dir sem cabeçalhos e somente 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

CheesyMacHack
fonte