ทุกวันเราได้รับห้าไฟล์ดังนี้:
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