विशिष्ट फ़ोल्डर के भीतर फ़ाइलों की खोज करना


1

हैलो मुझे एक बैच फ़ाइल के साथ फाइल खोजने के बारे में एक प्रश्न मिला।
मेरे पास निम्नलिखित बैच फ़ाइल है:

echo off
set arg1=%1
set arg2=%2
set arg3=%3

echo %arg1% %arg2% %arg3%

for /r %arg1% %%g in (%arg3%) do echo %%g

मेरे फ़ोल्डर्स का ले-आउट हैं:

TEST
---- 1702
-------jquery.js
---- 1704
-------jquery.js

जब भी मैं इस इनपुट के साथ बैच फ़ाइल चलाता हूं:

test.bat "C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"

मुझे निम्न आउटपुट मिले:

"C:\Batch Examples\TestDir" "C:\Batch Examples\OutDir" "jquery.js"
C:\Batch Examples\TestDir\"jquery.js"
C:\Batch Examples\TestDir\1702\"jquery.js"
C:\Batch Examples\TestDir\1704\"jquery.js"

C:\Batch Examples\TestDir\"jquery.js"परिणाम में क्यों दिखाया गया है?
TestDir निर्देशिका के भीतर कोई jquery फ़ाइल नहीं है।

वांछित आउटपुट जो मुझे चाहिए वह है:

jquery.js
jquery.js

कोई भी मुझे समझा सकता है कि मैं क्या गलत कर रहा हूं?

जवाबों:


2

आपकी गलती arg3 के लिए एक निश्चित मूल्य का उपयोग करना है। For /Rप्रत्येक फ़ोल्डर के लिए "jquery.js" को लागू करने वाले arg1 से शुरू होने वाले (उप) फ़ोल्डरों को पुनरावृत्त करेगा, यह मूल्यांकन नहीं करता है।

@Echo off
echo %1 %2 %3
for /r "%~1" %%g in ("%~3*") do echo %%~fg

लौट जाना चाहिए:

C:\Batch Examples\TestDir\1702\jquery.js
C:\Batch Examples\TestDir\1704\jquery.js
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.