दैनिक हमें इस तरह से पांच फाइलें मिलती हैं:
vi_250000364846.dqa_report.xlsx
vi_250000364846.3553_report
vi_250000364846.MSR_report
vi_250000364857.3553_report
vi_250000364857.dqa_report.xlsx
फ़ाइल नाम की संख्या प्रत्येक दिन अलग-अलग होती है, लेकिन वे तीन आवश्यक फ़ाइलों के लिए समान होंगी। मुझे उन तीन फ़ाइलों को केवल एक संपीड़ित ज़िप फ़ोल्डर में भेजने की आवश्यकता है।
मैंने निम्नलिखित कोड लिखा है, लेकिन यह पहली बार कई बार फाइल का उपयोग कर रहा है और पांच बार समान मूल्य प्रदर्शित करता है:
@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
अनावश्यक लगता है क्योंकि आप इसका उपयोग केवल फाइलों को एन्यूमरेट करने के लिए करते हैं और तीसरे को गलत स्थान पर रखा जाता है; यह ओ / के लिए ओटर के बाहर होना चाहिए।