सवाल मैं फ़ाइलों का बड़े पैमाने पर नाम कैसे बदल सकता हूं?


मुझे पैटर्न के साथ नामित फाइलों का एक गुच्छा मिला है 99 - DescriptiveName.txt और मैं सामने से नंबर को हटाना चाहता हूं इसलिए मेरे पास अभी है DescriptiveName.txt

मैं यह कैसे कर सकता हूँ? क्या मैं इसे कमांड लाइन से कर सकता हूं या क्या ऐसी उपयोगिता है जो यह कर सकती है?


117


मूल




जवाब:


मैं आपके शीर्षक में जानता हूं कि आप "डॉस में" कहते हैं, लेकिन मुझे लगता है कि आप इसे करने का एक तरीका ढूंढ रहे हैं और सोच रहे हैं कि यह सबसे अच्छा तरीका है या नहीं।

इसके लिए मैंने पाया है कि सबसे अच्छा सबसे अच्छा उपकरण है थोक नाम बदलें उपयोगिता

Bulk Rename Utility

यह एक कमांड लाइन उपकरण नहीं है, लेकिन उनके पास एक है कमांड लाइन संस्करण यदि आप वास्तव में इस तरह इसका उपयोग करना चाहते हैं।

मैंने जीयूआई संस्करण का बहुत उपयोग किया है, और यह बहुत शक्तिशाली, बहुत तेज और उपयोग करने में बेहद आसान है।

ओह, और यह है मुक्त निजी इस्तेमाल के लिए।


91



दुर्भाग्य से यह टूल व्यावसायिक उपयोग के लिए स्वतंत्र नहीं है :( - AntonK
यही कारण है कि मैंने कहा कि यह व्यक्तिगत उपयोग के लिए स्वतंत्र था। - Jim McKeeth
यह सुपर-त्वरित उपकरण है। इसने कई खोज-और-प्रतिस्थापन तर्कों का उपयोग करके, सेकंड में मेरी 6.000 फ़ाइलों को हल किया। नोटपैड ++ का उपयोग करना है लेकिन हजारों फाइलों को संपादित करना है। एक अच्छा समाधान, धन्यवाद! - Peanuts


एक छोटी पावरशेल स्क्रिप्ट:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

अधिक जटिल नियमित अभिव्यक्तियों के साथ संयुक्त, यह कुछ ऐसा हो सकता है:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

जो 'शुरुआत - 01.mp3' में '01 - Beginning.mp3 'जैसी चीज़ें बदलता है।

उपयोग -WhatIf पर पैरामीटर Rename-Item उन्हें जारी करने से पहले नामों की जांच करने के लिए।


55



@sysrqb, कृपया थोड़ा और शोध करें। - Joey
प्रतिस्थापित दो स्ट्रिंग एक्सप्रेशन की आवश्यकता नहीं है? दूसरे में दो हैं, पहला नहीं है। ... -replace '\d+ - ',''। साथ ही, मेरा मानना ​​है कि पहला व्यक्ति बेहतर है, बस रेगेक्स का उपयोग कर शुरुआत को अलग कर रहा है। हालांकि मुझे विश्वास है कि आपको अभिव्यक्ति की शुरुआत में ^ एंकर शामिल करना चाहिए, इसलिए यह संख्याओं से शुरू होने वाले नामों से मेल खाता है। - Xalorous
@Xalorous: ठीक है, आप बस इसे आज़मा सकते हैं। -replace दाएं तरफ सिर्फ एक तर्क हो सकता है, जिस स्थिति में दूसरा दूसरा स्पष्ट रूप से खाली स्ट्रिंग है। - Joey
यह मुझे बचाया .. थोक नामकरण उपयोगिता अभी क्रैश हो गई है और मैंने कई अन्य समाधानों की कोशिश की। यह उन लोगों के लिए बेहतर तरीका है जो regexp के साथ सहज हैं। बहुत बहुत धन्यवाद !! - Inkh Su Tesou


यदि आप वास्तव में विंडोज कमांड लाइन का उपयोग करना चाहते हैं (यदि आप कुछ डाउनलोड नहीं करना चाहते हैं), तो आप इसे इस तरह से कर सकते हैं:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

पहली पंक्ति फाइलों की सूची को फ़ाइल लिस्ट.txt नामक फ़ाइल में आउटपुट करती है। दूसरी पंक्ति सूची में से प्रत्येक नाम को 3 भागों, #, "-" और शेष नाम में अलग करती है। उनमें से प्रत्येक के लिए यह नाम बदलें।


24



इसे सरल बनाने और करने के लिए पहली पंक्ति हटाएं: for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
मुझे पता है कि यह पुराना है लेकिन यह अभी भी एक ठोस उत्तर है - केवल% एल (% एल)% के (% के) होना चाहिए [% i (% I) से टोकन वृद्धि, इसलिए मैं, जे, के ...] - ongle


AntRenamer नाम बदलने के पैटर्न को परिभाषित करना काफी आसान बनाता है; पहले से तैयार बहुत सारे हैं (और यह कार्यों का पूर्वावलोकन देता है):

AntRenamer

व्यक्तिगत और व्यावसायिक उपयोग के लिए नि: शुल्क।


24





पुराना स्कूल:

आप एक डीआईआर कर सकते हैं और आउटपुट को एक फ़ाइल में रीडायरेक्ट कर सकते हैं, जैसे डीआईआर * .TXT> TEMP.BAT

फिर उन संपादकों का उपयोग करें जिन्हें आपको आवश्यकता नहीं है और जिन भागों की आपको आवश्यकता है उन्हें संशोधित करें। शीर्ष पंक्ति के रूप में "@echo off" जोड़ें, इसे सहेजें और इसे चलाएं।


19



मुझे इस पृष्ठ के पुराने स्कूल डॉक्टरेट से संदर्भ मिला है: dostips.com/DosCommandIndex.htm; यह आश्चर्यजनक है कि आप क्या कर सकते हैं (अच्छा?) पुराना डॉस! - nik


एक अन्य विकल्प: भारी फ़ाइल Renamer

यह आसानी से अनुमति देता है नाम बदलने विभिन्न फ़ाइलें और फ़ाइल एक्सटेंशन। यह बहुत तेज और सरल है!

उन्नत उपयोगकर्ताओं और डेवलपर्स के लिए, इसका उपयोग करना संभव है नियमित अभिव्यक्ति

इसे क्रिया में देखें:

enter image description here


16



बीटीडब्ल्यू सबफ़ोल्डर के भीतर सभी फाइलें खोलने के लिए हम इसे कैसे चुन सकते हैं? मेरे पास लगभग 50 उपफोल्डर्स (रिकर्सिवली) और उनमें से कई फाइलों के साथ रूट फ़ोल्डर है। - Pacerier
@Pacerier मुझे लगता है कि जावा फ़ाइल चयनकर्ता इसे अनुमति नहीं देता है। मुझे एक फ़ोल्डर का चयन करने का विचार था और रिकर्सिव खोज शामिल किया जा सकता है। मैं इसे ध्यान में रखूंगा और भविष्य में रिलीज में जोड़ूंगा! - IvanRF


मैं उपयोग करता हूं कुल कमांडरइस तरह की चीजों के लिए बहु-नामकरण उपकरण (ctrl + M)। उनके उपयोगी उपकरण, गिनने के लिए बहुत से लोगों में से एक, उपयोग करना आसान है, और यदि आवश्यक हो तो नियमित अभिव्यक्तियों और टेम्पलेट्स को भी नियोजित कर सकते हैं। ओह, और यह स्पष्ट रूप से आपको कोई बदलाव करने से पहले एक पूर्वावलोकन देता है।

यह तीसरा या चौथा प्रश्न है जिसे मैंने कुल कमांडर की सिफारिश करने का उत्तर दिया है ... मुझे उनसे कमीशन मिलना चाहिए ;-)


13





जिस उपकरण से मैं संतुष्ट हूं वह है Renamer। यह नामकरण नियमों की बचत का भी समर्थन करता है, जो मेरे लिए उपयोगी रहा है, क्योंकि मैं कई बार एक ही नामकरण करता हूं।

नीचे एक उदाहरण है कि पहले डैश से पहले टेक्स्ट को कैसे हटाया जाए, लेकिन ऐसे कई नियम हैं जिन्हें आप परिभाषित कर सकते हैं।

enter image description here


11





मैंने उपयोग किया है नि: शुल्क कमांडर पोर्टेबल (फ्रीवेयर) इसके लिए अच्छा प्रभाव पड़ता है:

  1. नाम बदलने के लिए फ़ाइलों या निर्देशिकाओं का चयन या नेविगेट करें
  2. [Ctrl-M] दबाएं (या फ़ाइल> बहु-नाम बदलें)
  3. खेतों को भरें क्योंकि आपके परिस्थिति के लिए समझदारी होती है
  4. पूर्वावलोकन को सत्यापित करें कि आप क्या उम्मीद करते हैं
  5. चले जाओ!

5