매일 우리는 다음과 같은 5 개의 파일을받습니다 :
vi_250000364846.dqa_report.xlsx
vi_250000364846.3553_report
vi_250000364846.MSR_report
vi_250000364857.3553_report
vi_250000364857.dqa_report.xlsx
파일 이름의 숫자는 매일 다르지만 세 개의 필수 파일에서 동일합니다. 이 세 파일을 압축 된 zip 폴더로만 보내야합니다.
다음 코드를 작성했지만 첫 번째 파일을 여러 번 사용하고 동일한 값을 다섯 번 표시합니다.
@echo on
set LOGFILE=batch.log
call :LOG > %LOGFILE%
exit /B
:LOG
setlocal EnableDelayedExpansion
set n=0
set count=0
set vector[%n%]=0
for /f "tokens=* delims=." %%i in ('dir /b /a-d "C:\Test"') do (
set filename=%%i
for /f "tokens=2 delims=_." %%a in ("%filename%") do (
set vector[!n!]=%%a
for /f "tokens=* delims==" %%v in ('set vector[%n%]') do @echo %%v
)
set /A n+=1
)
왜 두 번째 파일을 매개 변수로 사용하지 않는지 잘 모르겠습니다. 다섯 개의 파일 이름 모두에 숫자 배열을 만들고 그 배열 값을 비교하려고합니다.
문제가 발생한 곳을 찾도록 도와주세요.
for /f
파일은 파일을 열거하는 데 사용하고 세 번째 파일이 잘못 배치되어 필요하지 않은 것처럼 보입니다. / f의 수달 밖에 있어야합니다.