जरूरत है। फ़ाइल नाम के आधार पर फ़ोल्डर बनाना होगा


2

मुझे .bat की ज़रूरत है जो फ़ाइल नाम के आधार पर फ़ोल्डर बनाएगा और फ़ाइलों को अंदर रखेगा। मेरे नाम इस तरह हैं:

string1 - string2 - string3 - string2 - string3_number.jpg

मुझे पता है कि मुझे पहले 3 स्ट्रिंग्स लगेंगे जैसा कि मुझे चाहिए था, लेकिन यह आगे काम नहीं कर सकता। जब मैं इस कमांड को बैट में डालने की कोशिश करता हूं तो यह केवल "-" नामक फोल्डर बनाता है।

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (set string1=%%a&set string2=%%b&set string3=%%c
md "%string1%-%string2%-%string3%")

इससे पहले @echo को बंद कर देना और सेटलोक करना। किसी के काम न करने से कोई इसे सही कर सकता है इसलिए यह फ़ोल्डर्स को नामों के आधार पर बनाएगा और फाइलों को डाल देगा। मैं इन पोस्टों को पढ़ता हूं लेकिन फिर भी फ़ोल्डर्स नहीं बना सकता।

जवाबों:


3

वजह से delayedexpansion जब स्थापित करने की आवश्यकता है और एक (कोड ब्लॉक) में एक वर का उपयोग कर यह काम नहीं करता।

लेकिन जैसा कि आप उन var को नहीं बदलते हैं जिनकी आवश्यकता नहीं है।

@Echo off & Setlocal EnableDelayedExpansion

for /F "tokens=1,2,3 delims=-" %%a in ('dir /B /A-D') do (
  set "Folder=%%a-%%b-%%c"
  Rem to remove the trailing space from the Folder
  set "Folder=!Folder:~0,-1!"
  If not exist "!Folder!\" MD "!Folder!"
)

गलत दृष्टिकोण वाली फ़ाइलों को स्थानांतरित करने के लिए, आपको तब फ़ाइलों को 1 पुनरावृत्त करना चाहिए और 2 उन्हें ऊपर के रूप में विभाजित करना चाहिए।


अच्छी तरह से @LotPings किया। 1999 में शुरू किया गया ... मुझे विलंबित विस्तार के बारे में कभी नहीं पता था।
एलन जैक्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.