Obtém o nome do arquivo para a variável da lista de arquivos

0

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

A pasta deve ter apenas 1 arquivo após a transferência com esse nome, assim, por exemplo, a pasta "C: \ Files \" pode ter:

Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt

Se eu estou querendo obter o nome do arquivo "Documento 1079475.pdf" da lista e colocar isso em uma variável, como você faria isso com o script 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
    
por em3ricasforsale 11.04.2018 / 23:09

1 resposta

1

Se você estiver fazendo pesquisas específicas e fizer o dir sem cabeçalhos e somente arquivos:

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

    
por 11.04.2018 / 23:30