परिभाषित फ़ाइल एक्सटेंशन को छोड़कर लूप के लिए

मैं बैच फ़ाइल में फोर लूप चलाने की कोशिश कर रहा हूं, लेकिन कार्रवाई से एक निश्चित फ़ाइल एक्सटेंशन को बाहर कर रहा हूं (क्योंकि ये अस्थायी फ़ाइलें हैं जिन्हें डाउनलोड करने के बाद अन्य प्रोग्राम द्वारा स्वचालित रूप से बदला जाएगा)।

मेरा फ़ोल्डर (जिसे मैंने अपनी बैच फ़ाइल में पहले %% landing_folder %% के रूप में परिभाषित किया है) में 6 फाइलें हो सकती हैं:

a.mov

b.wmv

c.avi

d.temporary

e.jpg

f.temporary

मैं कमांड का उपयोग करना चाहता हूँ

for /f %%i IN ('dir %landing_folder% /b') do move %landing_folder%\%%i %ingest_folder% 

और क्या यह केवल .mov, .wmv, .avi और .jpg को मेरे %% ingest_folder %% पर ले जाता है लेकिन समकालीन फ़ाइलों को छोड़ देता है।

उम्मीद है कि मैंने जो कुछ हासिल करने की कोशिश कर रहा हूं उसके साथ मैंने खुद को स्पष्ट कर दिया है!

0
किस प्रकार की प्रणाली/टर्मिनल में? दे घुमा के?
जोड़ा लेखक Dan, स्रोत

3 उत्तर

for /f %%i IN ('dir %landing_folder% /b ^|  findstr /i /e  " .avi .mov .jpg"') do move %landing_folder%\%%i %ingest_folder% 
0
जोड़ा

वैकल्पिक। आवश्यक फाइलों को छोड़ने के बजाय, आवश्यक फाइलें शामिल करें।

for %%x in (avi mov jpg wmv) do move "%landing_folder%\*.%%x" "%ingest_folder%"
0
जोड़ा
for /f %%i IN ('dir %landing_folder% /b') do (
   if "%%~Xi" neq ".temporary" move %landing_folder%\%%i %ingest_folder%
)
0
जोड़ा