एक कमांड के साथ कई फ़ोल्डर्स में कई फाइलों का नाम कैसे बदलें


11

हम अपनी *.htmlफ़ाइलों का नाम बदलना चाहते हैं *.phpलेकिन (दुखद रूप से) पर्याप्त जानकारी नहीं है कि इसे cmd प्रॉम्प्ट कमांड और / या बैच फ़ाइल के साथ करना है।

समस्या यह है कि प्रत्येक फ़ाइल अलग फ़ोल्डर में है - और मैं 750+ विभिन्न फ़ोल्डर नामों के बारे में बात कर रहा हूं। मुझे पता है कि फ़ाइलों के लिए वाइल्डकार्ड का उपयोग करना, * लेकिन फ़ोल्डर्स के लिए वाइल्डकार्ड का उपयोग करना मेरे लिए अज्ञात है। हमें संभवतः FORकमांड (कमांड प्रॉम्प्ट में) का उपयोग करने की आवश्यकता है , लेकिन वहां मैं फंस गया हूं।

फ़ोल्डर संरचना जिसका हम उपयोग करते हैं:

पैरेंट-फोल्डर / चाइल्ड-फोल्डर / ग्रैंडचिल्ड-फोल्डर / फाइल .html

उदाहरण के लिए:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html और इसी तरह।

मूल फ़ोल्डर सभी फ़ाइलों के लिए समान है; बच्चे और पोते फ़ोल्डर अधिकांश फ़ाइलों के लिए अलग हैं।

इन फ़ाइलों का नाम बदलने के बाद *.phpमुझे लगता है कि निम्नलिखित में .htaccessएक स्थायी पुनर्निर्देशन होगा।

RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php

जवाबों:


14

get-childItem -recurse | Where {$_.extension -eq ".html"} | rename-item -newname { $_.name -replace ".html",".php" }

यह PowerShell में काम करेगा। यदि आपके पास विंडोज 7 या विस्टा है, तो आपको इसे डिफ़ॉल्ट रूप से स्थापित करना चाहिए। यदि आप XP पर हैं तो आप इसे यहाँ डाउनलोड कर सकते हैं


सोन्दोस, चपेऊ !!!!!!!!!!!! इस तरफ से कई thanx, एक आकर्षण की तरह काम करता है।
चार्ल्स

@Charles, यदि इससे आपकी समस्या हल हो गई है, तो कृपया चेक मार्क पर क्लिक करें, ताकि बाकी सभी जो इसे देखते हैं, उन्हें पता चले कि यह काम कर रहा है। सुपरयूज़र में आपका स्वागत है।
सोआंडोस

3

कमांड लाइन में:

for /f "delims=*" %a in ('dir *.html /b /s') do ren "%a" *.php

नोट: आप *.htmlअन्य वाइल्डकार्ड के लिए प्रतिस्थापित कर सकते हैं , जैसे d:\www\*.html

नोट 2: यदि एक बैच फ़ाइल के भीतर कमांड का उपयोग कर रहे हैं, के %aसाथ बदलें %%a(मुझसे मत पूछो क्यों)


क्यों कहते हो "delims=*"?  "delims="काफी अच्छा होना चाहिए (यानी, आप एक सीमांकक क्यों निर्दिष्ट करते हैं *?
जी-मैन कहते हैं, 'मोनिका'

1

फ्लेक्सिबल रेनमर एक उत्कृष्ट छोटा प्रोग्राम है जो कई अलग-अलग प्रकार के नाम बदलने / प्रतिकृति को संभाल लेगा। यह नियमित अभिव्यक्ति को स्वीकार करता है, और इसमें सामान्य पैटर्न पूर्वनिर्धारित होते हैं। इसके अतिरिक्त, यह आपको सबफ़ोल्डर्स में आइटम शामिल करने, या स्वयं फ़ोल्डर्स पर काम करने की अनुमति देता है। यह आपको किए गए सभी परिवर्तनों का पूर्वावलोकन भी देता है। मैंने वर्षों से इसका उपयोग किया है, और इसकी अत्यधिक अनुशंसा करता हूं।

http://download.cnet.com/Flexible-Renamer/3000-2248_4-28799.html


1

फोरफाइल्स का उपयोग करके, हम सभी सबफ़ोल्डर्स में पुनरावर्ती रूप से फ़ाइलों का नाम बदलने के लिए एक स्क्रिप्ट लिख सकते हैं।

forfiles /S /M *.html /C "cmd /c rename @file @fname.php"   

स्रोत: बल्क में फ़ाइलों के नाम बदलने के लिए बैच स्क्रिप्ट


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