배치 파일을 사용하여 순차적으로 번호가 매겨진 특정 폴더 (0,1,2, ...)의 모든 파일을 유지하려고합니다. 이렇게하려면 먼저이 시퀀스에서 가장 높은 숫자가 무엇인지 파악해야합니다. 그러면 목록의 끝에 순차적으로 이름이 지정되지 않은 파일을 추가 할 수 있습니다. 예를 들어, 나는 다음과 같은 파일이있을 수 있습니다 :배치 파일을 사용하여 가장 높은 파일 이름을 순서대로 확인하는 가장 빠른 방법은 무엇입니까?
0.png
1.JPG
2.JPG
3.png
file_51.jpg
pictureabc .png
이렇게하면 결과가 3이므로 결과가 las입니다. t 파일 이름. 그러면 나머지 파일 (가장 좋은 방법 중 하나는 확실하지 않음)을 찾아 4에서 시작하는 번호를 매길 수 있습니다.
내가 지금까지 생각해 낸 유일한 해결책은 멈추는 무한한 고토 루프를 사용하는 것입니다. 해당 번호를 포함하는 파일 이름이없는 경우
set count=0
:loop
if exist %count%.* set /a count+=1 & goto loop
이 솔루션은 매우 비효율적이지만 10 만 개의 이미지에 대해서는 거의 1 분이 걸립니다. 나는 가능한 한 10 초 이내에 이것을 달성 할 수있는 해결책을 찾고있다.
이것은 또한 불행히도 goto 접근법보다 약간 오래 걸립니다. 이는 놀랍습니다. 어쨌든 도움을 주셔서 감사합니다. – Jimpi27
@ Jimpi27, 예, 오늘 아침에 처리중인 이미지의 숫자를 인식하고 대답을 다시 평가하기 시작했습니다. 파일 목록에 구멍이 있거나 파일이 누락되었을 가능성이 있습니까? –
@MC_ND 예 누락 된 번호는이 프로그램에서 확인하기를 바라는 부분 중 일부입니다. 나는 또한 디렉토리에서 파일을 생성, 삭제 또는 이름 변경하는 것과 같은 여러 이벤트에 대해 별도의 배치 파일을 만들 것입니다. 이 배치 파일은 모두 백그라운드에서 실행되는 C# 프로그램의 FileSystemWatcher에 의해 실행됩니다. – Jimpi27