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


126

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

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

जवाबों:


94

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

इसके लिए मुझे मिला सबसे अच्छा उपकरण Bulk Rename उपयोगिता है

थोक का नाम बदलें उपयोगिता

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

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

ओह, और यह व्यक्तिगत उपयोग के लिए मुफ़्त है


दुर्भाग्य से यह उपकरण व्यावसायिक उपयोग के लिए मुफ़्त नहीं है :(
एंटोन

यही कारण है कि मैंने कहा कि यह व्यक्तिगत उपयोग के लिए स्वतंत्र था।
जिम मैककेथ

2
यह सुपर-क्विक टूल है। इसने कई खोज-और-जगह लॉजिक्स का उपयोग करके सेकंड में मेरी 6.000 फाइलें जारी कीं। नोटपैड ++ का उपयोग करने जैसा है, लेकिन हजारों फ़ाइलों का संपादन करना है। एक महान समाधान, धन्यवाद!
मूंगफली

59

एक छोटी सी PowerShell स्क्रिप्ट:

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

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

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

जो turns01 - Beginning.mp3 ’जैसी चीजों को like Beginning - 01.mp3’ में बदल देता है।

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


1
@ sysrqb, कृपया थोड़ा और शोध करें।
जॉय

प्रतिस्थापित करने के लिए दो स्ट्रिंग अभिव्यक्तियों की आवश्यकता नहीं है? दूसरे वाले में दो हैं, पहला वाला नहीं है। ... -replace '\d+ - ',''। इसके अलावा, मेरा मानना ​​है कि पहले वाला बेहतर है, बस रेगेक्स का उपयोग करके शुरुआत से अलग करना। हालांकि मेरा मानना ​​है कि आपको अभिव्यक्ति की शुरुआत में ^ एंकर को शामिल करना चाहिए, इसलिए यह केवल संख्याओं के साथ शुरू होने वाले नामों से मेल खाता है।
Xalorous

1
@Xalorous: ठीक है, आप बस इसे आज़मा सकते हैं। -replaceदाईं ओर सिर्फ एक तर्क हो सकता है, जिस स्थिति में दूसरा एक खाली स्ट्रिंग है।
जॉय

इसने मुझे बचाया .. थोक का नाम बदलें उपयोगिता बस दुर्घटनाग्रस्त हो गया और मैंने कई अन्य समाधानों की कोशिश की। यह उन लोगों के लिए बेहतर है जो regexp के साथ सहज हैं। बहुत बहुत धन्यवाद !!
तोक सु टेसू

24

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

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

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


2
इसे सरल बनाने के लिए पहली पंक्ति निकालें और ऐसा करें:for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l

मुझे पता है कि यह पुराना है, लेकिन यह अभी भी एक ठोस जवाब है - केवल% l (% L)% k (% K) [% I से टोकन वृद्धि (% I) होना चाहिए इसलिए I, J, K ...]
डोनाल्ड बायरड

24

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

AntRenamer

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


19

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

आप DIR कर सकते हैं और आउटपुट को किसी फ़ाइल में पुनर्निर्देशित कर सकते हैं, जैसा कि DIR * .TXT> TEMP.BAT में है।

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


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

16

एक अन्य विकल्प: बड़े पैमाने पर फ़ाइल का नवीनीकरण

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

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

इसे कार्रवाई में देखें:

यहां छवि विवरण दर्ज करें


1
Btw हम सबफ़ोल्डर्स के भीतर सभी फ़ाइलों को खोलने के लिए इसे कैसे चुन सकते हैं? मुझे लगभग 50 सबफ़ोल्डर (पुनरावर्ती) और कई फ़ाइलों के साथ एक रूट फ़ोल्डर मिला है।
पचेरियर

1
@ स्पेसर मुझे लगता है कि जावा फ़ाइल चयनकर्ता इसकी अनुमति नहीं देता है। मुझे एक फ़ोल्डर चुनने की अनुमति देने का विचार था और पुनरावर्ती खोज को शामिल किया जा सकता है। मैं इस पर ध्यान दूंगा और इसे भविष्य के रिलीज में जोड़ूंगा!
इवानआरएफ

13

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

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


11

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

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

यहां छवि विवरण दर्ज करें


5

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

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

4

उन्नत उपयोगकर्ताओं और डेवलपर्स के लिए, मैं RegexRenamer का सुझाव दूंगा

RegexRenamer स्क्रीनशॉट

प्रो की:

  • बहुत सरल यूआई;
  • नियमित अभिव्यक्तियाँ जो डेवलपर्स से परिचित हैं;
  • GPLv2;

कोन की:

  • यह एक कमांड लाइन नहीं है! :)

चयनित फ़ोल्डर के सभी सबफ़ोल्डर्स के लिए पुनरावर्ती रूप से कार्य नहीं कर सका!
लकीलोक


3

यहां एक कमांड-लाइन समाधान है --- एक जावा प्रोग्राम जिसे मैंने विशेष रूप से फाइलनाम में "पैटर्न" के साथ काम करना आसान बनाया है। यह मुफ़्त और खुला स्रोत है, इसलिए इसे संशोधित करने के लिए स्वतंत्र महसूस करें:

नाम बदलें
http://renamewand.sourceforge.net/

कुछ प्रासंगिक उपयोग उदाहरण:

"-"फ़ाइल नाम से पहले सब कुछ छोड़ें :

java -jar RenameWand.jar  "<a> - <b>"  "<b>"

अंतिम-संशोधित समय के अनुसार छँटाई करते हुए फ़ाइल नाम के लिए 3-अंकीय संख्या बढ़ाएँ:

java -jar RenameWand.jar  "<a>"  "<3|#FT> <a>"

फ़ाइल नाम के हिस्सों को फिर से व्यवस्थित करें, और मामला बदलें:

java -jar RenameWand.jar  "<album> - <artist> - <song>.<ext>" 
                          "<artist.upper> <album.title> - <song>.<ext.lower>"

3

मैंने लगभग एक महीने पहले RenPhoric की खोज की । उत्तम। और यह मुफ़्त है

कोई जटिल इंटरफ़ेस और मैं जल्दी से ठीक वैसा ही नाम बदलने में सक्षम था जैसा मैं चाहता था। नियमित अभिव्यक्ति सक्षम। तब से कुछ और इस्तेमाल नहीं किया गया।


2

मुझे साइलॉग का वाइल्डनेम पसंद है । यह शक्तिशाली, अभी तक उपयोग करने में आसान है, और इसमें बहुत सारी विशेषताएं हैं:

  1. उपवास
  2. स्ट्रिंग हेरफेर
  3. काउंटरों
  4. वाइल्डकार्ड
  5. नियमित अभिव्यक्ति
  6. प्रतिस्थापन
  7. केस-रूपांतरण
  8. लॉगिंग
  9. सिमुलेशन (वास्तव में उन्हें लागू किए बिना परिणाम दिखाएं)

यहां छवि विवरण दर्ज करें


2

ऊपर @zdan की तरह, मैंने कमांड लाइन (विंडोज में "cmd.exe" का उपयोग करके) किया। मेरे विशेष मामले के लिए इसमें कुछ छेड़छाड़ हुई, लेकिन थोड़ा शोध ने इसे हल कर दिया।

Zdan की तरह, मैं सूची को एक TXT फ़ाइल में आउटपुट करता हूं, फिर उपयोग किया जाता है tokensऔर delimsतदनुसार फाइलों का नाम बदल देता हूं । मेरे मामले में, मैंने इस तरह से नामित फाइलों की एक सूची के साथ शुरुआत की:

name-01-02-2012.csv

मैं चाहता था कि फ़ाइल तिथि भाग y / m / d क्रम में हो, अंत में "नाम" भाग के साथ ऐसा हो, तो यह इस तरह से पढ़ा जाएगा:

2012-01-02-name.csv

इस एन-मास को करने के लिए, मैंने निम्नलिखित कोड का उपयोग किया। ध्यान दें कि इसे इस प्रकार करते समय, फ़ाइल नाम के सभी भागों को ".csv" के विस्तार सहित माना जाता है। यह मेरे चारों ओर पहली बार goofed।

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

tokensफ़ाइल नाम के "भागों" कर रहे हैं, तो The delimsविभाजक हैं। ध्यान दें कि मेरे मामले में, मेरे पास 2 सीमांकक (एक डैश और एक डॉट) था।

मैं व्यक्तिगत रूप से "थोक नाम" ऐप की परवाह नहीं करता हूं। जैसा कि दूसरों ने उल्लेख किया है, जीयूआई अत्याचारी है और बहुत सहज नहीं है। थोड़ा शोध और सरल कोडिंग के साथ, इन चीजों को बहुत कुशलता से और जल्दी से किया जा सकता है।


2

मजेदार नाम और कमांड लाइन टूल बहुत शक्तिशाली, बहुत तेज और उपयोग करने में बेहद आसान है। "खोजें और बदलें पाठ" FART http://fart-it.sourceforge.net/ पर बहुत अच्छा ! txt फ़ाइलों में भी शब्दों का नाम बदल सकते हैं।

उपयोग

Usage: FART [options] [--] <wildcard>[,...] [find_string] [replace_string]

Options:
 -h --help          Show this help message (ignores other options)
 -q --quiet         Suppress output to stdio / stderr
 -V --verbose       Show more information
 -r --recursive     Process sub-folders recursively
 -c --count         Only show filenames, match counts and totals
 -i --ignore-case   Case insensitive text comparison
 -v --invert        Print lines NOT containing the find string
 -n --line-number   Print line number before each line (1-based)
 -w --word          Match whole word (uses C syntax, like grep)
 -f --filename      Find (and replace) filename instead of contents
 -B --binary        Also search (and replace) in binary files (CAUTION)
 -C --c-style       Allow C-style extended characters (\xFF\0\t\n\r\\ etc.)
    --cvs           Skip cvs dirs; execute "cvs edit" before changing files
 -a --adapt         Adapt the case of replace_string to found string
 -b --backup        Make a backup of each changed file
 -p --preview       Do not change the files but print the changes

कुछ और विवरण? क्या यह फ़ाइलों का नाम बदल देता है ?
वॉनब्रांड

हाँ, -fविकल्प, जैसा कि सूचीबद्ध है।
user1016274

2

मल्टी रिनेम स्क्रिप्ट टोटल कमांडर्स मल्टी रिनेम टूल का एक ओपन सोर्स विकल्प है जिसे आप स्क्रिप्ट के जरिए चला सकते हैं। यह मेटाडेटा जानकारी के लिए टीसी प्लगइन्स का उपयोग कर सकता है।

https://code.google.com/p/multi-rename-script/ http://multi-rename-script.googlecode.com/svn/trunk/docs/res/MRS.PNG


2
@ तो बंद
सेटलोक सक्षम
सेट एक्स = 5
FOLDER_PATH = सेट करें।
% FOLDER_PATH%
%% f के लिए (*) अगर %% f नेक% ~ nx0 (
    "फ़ाइल नाम = %% ~ nf" सेट करें
    सेट "फ़ाइल नाम =! फ़ाइल नाम: ~% X%!"
    ren "%% f" "! फ़ाइल नाम! %% ~ xf"
)
popd

इसे एक बैच फ़ाइल में सहेजें और चलाएं


यह अच्छा है, लेकिन मैं एक्स को एक चर (पैरामीटर के रूप में पास) कैसे बना सकता हूं?
कंगण

@ कोंकण इस तरह:set /p "X=Enter the value for X: "
किडक्विक

1

मैं विश्वविद्यालय में पाठ्यक्रमों को संचालित करने के लिए ब्लैकबोर्ड का उपयोग करता हूं। जब मैं बड़े पैमाने पर असाइनमेंट डाउनलोड करता हूं (ब्लैकबोर्ड में, ग्रेडिंग कॉलम के ऊपर क्लिक करता हूं, तो "असाइनमेंट फाइल डाउनलोड" ब्लैकबोर्ड विंडोज पर मान्य होने के लिए फाइल का नाम बनाते हुए फाइल के नाम पर अतिरिक्त सामान का एक गुच्छा जोड़ता है।

यहाँ वे क्या दिखते हैं:

Recitation20Assignment_studentname_attempt_2013-03-01-20-03-09_Exercise28129.docx

और यही मैं चाहता था

studentname.docx

इसलिए मैंने उस दृष्टिकोण का उपयोग किया, जिसमें @zdan और @ gtr1971 ने सलाह दी कि अंदर की फाइलों (CMD.EXE) के साथ फ़ोल्डर पर एक कमांड विंडो खोलकर। फिर एक दस्तावेज़ में सभी फ़ाइल नाम डालने के लिए इस कमांड को चलाएं।

dir /b >filelist.txt

दस्तावेज़ संपादित करें और फ़ोल्डर के नाम हटा दें, आदि।

केवल उपयोगकर्ता नाम और फ़ाइल एक्सटेंशन के साथ ब्लैकबोर्ड जोड़े गए फ़ाइल नाम को बदलने के लिए इस कमांड का उपयोग करें।

for /f "tokens=1,2,3,4,5,6 delims=_." %i in (filelist.txt) do ren "%i _%j_%k_%l_%m.%n" %j.%n

आशा है कि यह किसी और को भी मदद करता है।


1

यहाँ फाइल अटैचमेंट चेंजर नामक एक और सरल प्रोग्राम है जिसका उपयोग आप फ़ाइलों का नाम बदलने के लिए कर सकते हैं। यह एक पोर्टेबल प्रोग्राम है, इसलिए आप इसे USB ड्राइव पर ले जा सकते हैं।

http://www.softpedia.com/get/Desktop-Enhancements/Other-Desktop-Enhancements/File-Attribute-Changer.shtml


1

मैंने JREN.BAT नामक एक हाइब्रिड JScript / बैच कमांड लाइन उपयोगिता विकसित की है जो नियमित अभिव्यक्ति खोज और नामों पर प्रतिस्थापित करके फ़ाइलों या फ़ोल्डरों का नाम बदल सकती है। यह शुद्ध स्क्रिप्ट है जो एक्सपी आगे से किसी भी विंडोज मशीन पर मूल रूप से चलेगी। पूर्ण प्रलेखन स्क्रिप्ट के भीतर एम्बेडेड है।

JREN.BAT मान लें कि आपकी वर्तमान निर्देशिका में है, या बेहतर अभी तक, आपके रास्ते में कहीं है, तो आपका नाम बदलने का कार्य तुच्छ हो जाता है।

jren "^\d+[ -]+(.+)\.txt$" "$1" /i

या

jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"

विकल्प सहित कई विकल्प हैं, /Sजो उप-निर्देशिकाओं पर नाम बदलने का पुनरावर्ती कार्य करता है।


0

यदि आपको गंभीर शक्ति की आवश्यकता है और धन को बाहर निकालने के लिए तैयार हैं ... PowerGrep बाजार पर सबसे शक्तिशाली और बहुमुखी उपकरणों में से एक है ... आप PowerGrep के साथ लगभग कुछ भी नाम बदल सकते हैं ... यहां तक ​​कि द्विआधारी खोज और प्रतिस्थापित ... यह RegEx Guru, Jan Goyvaerts द्वारा बनाया गया है ।

यहां छवि विवरण दर्ज करें


यह उपयोगिता बहुत महंगी है ...
विजार्ड79

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