ทุกวันเราได้รับห้าไฟล์ดังนี้:
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
ดูเหมือนว่าไม่จำเป็นในขณะที่คุณเพียงแค่ใช้มันเพื่อระบุไฟล์และคนที่ 3 ถูกวางผิดที่; มันควรจะอยู่ด้านนอกของ oter สำหรับ / f