목표 : 단일 폴더에서 특정 유형의 파일을 검색하고 싶습니다. 특정 파일 이름 패턴 (예 : "파일")으로 필터링하고 파일 이름으로 정렬하면 결과는 다음과 같습니다.
file101.txt
file212.txt
file432.txt
이제 마지막 항목 (여기서는 file432.txt
) 만 선택하고 해당 파일에 대한 추가 작업 (예 : 복사 및 이름 바꾸기)을 수행 하고 싶습니다 .
어떻게해야합니까?
지금까지 내가 얻은 것은 다음과 같습니다.
@echo off
setlocal
set list=
for /r . %%g in (file*.txt) do echo %%g
.. 내 질문의 맨 위에 표시되는 목록을 제공합니다.
내가 이해하는 한 실제 목록은 없습니다. 반환 / 줄 바꿈 문자가있는 문자열 일뿐입니다. 결과적으로 특정 검색 결과 항목을 실제로 선택할 수 없습니다. 다른 for
루프를 사용 했지만 EOF를 제외하고 어떤 패턴을 필터링할지 정확히 알지 못합니다. 내가 가진 유일한 아이디어는 모든 줄 바꿈 문자를 제거하고 결과를 변수에 저장하는 것입니다. 이제 발견 된 모든 새 줄은 이전 줄을 덮어 씁니다.
어떻게해야합니까?
set lastitem=for %%g in (%list%) do REMOVE_NEWLINE and echo %%g
Jim,이
—
Squashman
/R
옵션이 하위 폴더로 들어가는 데 사용 된다는 것을 알고 싶습니다 . 따라서 실행하는 동안 액세스하는 각 폴더마다 파일이 정렬되므로 수락해야합니다. 모든 것은 폴더와 파일 이름에 따라 알파벳순으로 출력됩니다. 이 코드는 모든 파일의 파일 이름 구조가 동일한 경우에만 작동합니다. 파일 이름에 숫자가 많거나 적은 경우 가장 큰 숫자 인 파일 이름을 얻거나 얻지 못할 수 있습니다.
@Squashman, 나는 그 세부 사항을 알지 못했지만 실제로 설명 된 매우 구체적인 제한으로 인해 예상대로 작동했습니다 (따라서 대답을 받아 들였습니다). 이 문제를 더 잘 해결하기 위해 질문을 적절히 변경하십시오.
—
Jim McAdams
/O
dir
dir /?