파일 목록에서 파일 이름을 변수로 가져오기

파일 목록에서 파일 이름을 변수로 가져오기

현재 스케줄러를 변환하고 있습니다. 현재는 와일드카드를 사용하여 파일 전송을 수행할 수 있으며 사후 프로세스에서 이동된 내용을 가져와서 읽어서 와일드카드로 이동한 파일의 파일 이름을 가져올 수 있습니다. 포스트 프로세스에서 이름을 가져오는 새로운 스케줄러로는 더 이상 이 작업을 수행할 수 없습니다.

전송 후 폴더에는 해당 이름의 파일이 1개만 있어야 합니다. 예를 들어 "C:\Files\" 폴더에는 다음이 포함될 수 있습니다.

Rainbow.csv
Document 1079475.pdf
Shapes_20180411.txt

목록에서 파일 이름 "Document 1079475.pdf"를 가져와서 변수에 넣으려면 "Document*.pdf"만 알고 Windows에서 배치 스크립팅을 사용하여 어떻게 수행합니까?

아래 명령을 시도했습니다.

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

그러나 첫 번째 줄을 실행하면 파일이 반환됩니다.

 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

따라서 변수 VAR은 다음을 반환합니다.

Volume in drive C is OSDisk

답변1

특정 검색을 수행하고 헤더 없이 다음과 같은 파일에 대해서만 dir을 수행하는 경우:

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

시도한 것과 동일한 명령이 작동하여 파일 이름과 개행 문자만 제공합니다.

dir /? 

도움이 될 수 있는 다른 옵션을 제공합니다.

관련 정보