मैं एक निश्चित हार्ड ड्राइव पर सभी निर्देशिकाओं का नाम बदल रहा हूँ (C :) नहीं हर निर्देशिका के पहले अक्षर को कैपिटल करके (इसलिए: \images
-> \Images
)। दुर्भाग्य से मुझे खरोंच से इसे लिखने के लिए पर्याप्त अनुभव नहीं है।
मैं एक निश्चित हार्ड ड्राइव पर सभी निर्देशिकाओं का नाम बदल रहा हूँ (C :) नहीं हर निर्देशिका के पहले अक्षर को कैपिटल करके (इसलिए: \images
-> \Images
)। दुर्भाग्य से मुझे खरोंच से इसे लिखने के लिए पर्याप्त अनुभव नहीं है।
जवाबों:
निम्न मूल बैच स्क्रिप्ट ड्राइव X में सभी निर्देशिकाओं का नाम बदल देगी :, केवल पढ़ने, अनदेखा करने, और सिस्टम निर्देशिकाओं को अनदेखा करने और पीछे के बिंदुओं को अनदेखा करने के लिए। यह नामों को निचले मामले में परिवर्तित करता है और फिर निर्देशिका नाम (अंग्रेजी वर्ण) के प्रारंभिक वर्ण को कैपिटल करता है। यह यूनिकोड को नामों में नहीं संभालता है।
@echo off
setlocal disableDelayedExpansion
set "drive=x"
set "tempFile=%temp%\initUpper%random%.txt"
dir /s /b /l /ad-l-h-s-r %drive%:\* >"%tempFile%"
for /f "usebackq eol=: delims=" %%F in ("%tempFile%") do (
set "old=%%F"
set "new=%%~nxF"
setlocal enableDelayedExpansion
for %%C in (
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
) do if /i "!new:~0,1!" equ "%%C" set "new=%%C!new:~1!"
ren "!old!" "!new!" 2>nul || echo unable to rename !old!
endlocal
)
del "%tempFile%"
स्क्रिप्ट प्रदर्शन कारणों के लिए एक अस्थायी फ़ाइल का उपयोग करता है। इसे डीआईआर कमांड के आउटपुट को सीधे पढ़ने के लिए संशोधित किया जा सकता है। लेकिन आउटपुट काफी बड़ा हो सकता है, और कमांड परिणाम सेट बहुत बड़ा होने पर FOR / F बहुत धीमा हो जाता है।
कई मोड़ हैं जो डीआईआर कमांड पर लागू किए जा सकते हैं। उदाहरण के लिए:
/ad
फ़ाइलों और निर्देशिकाओं का नाम बदलने का विकल्प निकालें :dir /s /b /l /a-l-h-s-r
/a-h-s
छिपे और सिस्टम फ़ोल्डर को शामिल करने के लिए विकल्प निकालें :dir /s /b /l /ad-l-r
/l
सभी लेकिन प्रारंभिक वर्ण के मामले को संरक्षित करने का विकल्प निकालें :dir /s /b /ad-l-h-s-r
जैसा कि मार्थेन काया पॉलो ने टिप्पणियों में उल्लेख किया है, इस प्रश्न का उत्तर पहले ही दिया जा चुका है, हालांकि अप्रत्यक्ष रूप से।
आप के लिए एक महान उपकरण का उपयोग कर सकते हैं, अंतरिक्ष तूफान नेमर , के रूप में यहां पोस्ट: https://superuser.com/a/65304/125301 ,