जवाबों:
मुझे पता है कि आप अपने शीर्षक में "डॉस" कहते हैं, लेकिन मुझे यह आभास होता है कि आप ऐसा करने का तरीका ढूंढ रहे हैं और सोच रहे हैं कि क्या यह सबसे अच्छा तरीका है।
इसके लिए मुझे मिला सबसे अच्छा उपकरण Bulk Rename उपयोगिता है ।
यह एक कमांड लाइन उपकरण नहीं है, लेकिन यदि आपके पास वास्तव में इसका उपयोग करना चाहते हैं तो उनके पास कमांड लाइन संस्करण है ।
मैंने GUI संस्करण का बहुत उपयोग किया है, और यह बहुत शक्तिशाली, बहुत तेज़ और उपयोग करने में बेहद आसान है।
ओह, और यह व्यक्तिगत उपयोग के लिए मुफ़्त है ।
एक छोटी सी 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
करें।
... -replace '\d+ - ',''
। इसके अलावा, मेरा मानना है कि पहले वाला बेहतर है, बस रेगेक्स का उपयोग करके शुरुआत से अलग करना। हालांकि मेरा मानना है कि आपको अभिव्यक्ति की शुरुआत में ^ एंकर को शामिल करना चाहिए, इसलिए यह केवल संख्याओं के साथ शुरू होने वाले नामों से मेल खाता है।
-replace
दाईं ओर सिर्फ एक तर्क हो सकता है, जिस स्थिति में दूसरा एक खाली स्ट्रिंग है।
यदि आप वास्तव में विंडोज़ कमांड लाइन का उपयोग करना चाहते हैं (यदि आप कुछ डाउनलोड नहीं करना चाहते हैं), तो आप इसे इस तरह कर सकते हैं:
dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l
पहली पंक्ति फाइल की सूची को फाइललिस्ट.टेक्स्ट नामक फाइल में आउटपुट करती है। दूसरी पंक्ति सूची में प्रत्येक नाम को 3 भागों में विभाजित करती है, #, "-" और शेष नाम। उनमें से प्रत्येक के लिए यह नाम बदलें आदेश करता है।
for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
AntRenamer नाम बदलने के एक पैटर्न को परिभाषित करना काफी आसान बनाता है; पहले से ही तैयार किए गए बहुत सारे लोग हैं (और यह क्रियाओं का पूर्वावलोकन देता है):
व्यक्तिगत और व्यावसायिक उपयोग के लिए नि: शुल्क।
पुराना स्कूल:
आप DIR कर सकते हैं और आउटपुट को किसी फ़ाइल में पुनर्निर्देशित कर सकते हैं, जैसा कि DIR * .TXT> TEMP.BAT में है।
फिर एक संपादक का उपयोग करें जिसे आपको ज़रूरत नहीं है और उन हिस्सों को संशोधित करें जिनकी आपको ज़रूरत है। शीर्ष पंक्ति के रूप में "@echo बंद" जोड़ें, इसे सहेजें और इसे चलाएं।
एक अन्य विकल्प: बड़े पैमाने पर फ़ाइल का नवीनीकरण
यह आसानी से कई फ़ाइलों और फ़ाइल एक्सटेंशन का नाम बदलने की अनुमति देता है । यह बहुत तेज़ और सरल है!
उन्नत उपयोगकर्ताओं और डेवलपर्स के लिए, नियमित अभिव्यक्ति का उपयोग करना संभव है ।
इसे कार्रवाई में देखें:
मैं इस तरह की चीजों के लिए टोटल कमांडर के मल्टी-रेनेम टूल (ctrl + M) का उपयोग करता हूं । उनके उपयोगी उपकरण, गिनती करने के लिए बहुत सारे में से एक, उपयोग करना आसान है, और यदि आवश्यक हो तो नियमित अभिव्यक्ति और टेम्पलेट्स को भी नियुक्त कर सकते हैं। ओह, और यह स्पष्ट रूप से आपको कोई भी बदलाव करने से पहले एक पूर्वावलोकन देता है।
यह कुल कमांडर की सिफारिश करने वाला तीसरा या चौथा प्रश्न है ... मुझे उनसे एक कमीशन प्राप्त करना चाहिए ;-)
जिस टूल से मैं संतुष्ट हुआ हूं वह है ReNamer । यह नाम बदलने के नियमों को बचाने का भी समर्थन करता है, जो मेरे लिए उपयोगी रहा है, जैसा कि मैंने कई बार एक ही नाम बदला है।
नीचे पहले डैश से पाठ को हटाने के तरीके का एक उदाहरण है, लेकिन ऐसे अन्य नियमों का भार है जिन्हें आप परिभाषित कर सकते हैं।
मैंने अच्छे प्रभाव के लिए फ्री कमांडर पोर्टेबल (फ्रीवेयर) का उपयोग किया है:
उन्नत उपयोगकर्ताओं और डेवलपर्स के लिए, मैं RegexRenamer का सुझाव दूंगा ।
प्रो की:
कोन की:
सबसे आसान तरीका यह होगा कि हम Rename Master का उपयोग करें ।
यहां एक कमांड-लाइन समाधान है --- एक जावा प्रोग्राम जिसे मैंने विशेष रूप से फाइलनाम में "पैटर्न" के साथ काम करना आसान बनाया है। यह मुफ़्त और खुला स्रोत है, इसलिए इसे संशोधित करने के लिए स्वतंत्र महसूस करें:
नाम बदलें
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>"
मैंने लगभग एक महीने पहले RenPhoric की खोज की । उत्तम। और यह मुफ़्त है ।
कोई जटिल इंटरफ़ेस और मैं जल्दी से ठीक वैसा ही नाम बदलने में सक्षम था जैसा मैं चाहता था। नियमित अभिव्यक्ति सक्षम। तब से कुछ और इस्तेमाल नहीं किया गया।
ऊपर @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 सीमांकक (एक डैश और एक डॉट) था।
मैं व्यक्तिगत रूप से "थोक नाम" ऐप की परवाह नहीं करता हूं। जैसा कि दूसरों ने उल्लेख किया है, जीयूआई अत्याचारी है और बहुत सहज नहीं है। थोड़ा शोध और सरल कोडिंग के साथ, इन चीजों को बहुत कुशलता से और जल्दी से किया जा सकता है।
मजेदार नाम और कमांड लाइन टूल बहुत शक्तिशाली, बहुत तेज और उपयोग करने में बेहद आसान है। "खोजें और बदलें पाठ" 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
विकल्प, जैसा कि सूचीबद्ध है।
मल्टी रिनेम स्क्रिप्ट टोटल कमांडर्स मल्टी रिनेम टूल का एक ओपन सोर्स विकल्प है जिसे आप स्क्रिप्ट के जरिए चला सकते हैं। यह मेटाडेटा जानकारी के लिए टीसी प्लगइन्स का उपयोग कर सकता है।
@ तो बंद सेटलोक सक्षम सेट एक्स = 5 FOLDER_PATH = सेट करें। % FOLDER_PATH% %% f के लिए (*) अगर %% f नेक% ~ nx0 ( "फ़ाइल नाम = %% ~ nf" सेट करें सेट "फ़ाइल नाम =! फ़ाइल नाम: ~% X%!" ren "%% f" "! फ़ाइल नाम! %% ~ xf" ) popd
इसे एक बैच फ़ाइल में सहेजें और चलाएं
set /p "X=Enter the value for X: "
मैं विश्वविद्यालय में पाठ्यक्रमों को संचालित करने के लिए ब्लैकबोर्ड का उपयोग करता हूं। जब मैं बड़े पैमाने पर असाइनमेंट डाउनलोड करता हूं (ब्लैकबोर्ड में, ग्रेडिंग कॉलम के ऊपर क्लिक करता हूं, तो "असाइनमेंट फाइल डाउनलोड" ब्लैकबोर्ड विंडोज पर मान्य होने के लिए फाइल का नाम बनाते हुए फाइल के नाम पर अतिरिक्त सामान का एक गुच्छा जोड़ता है।
यहाँ वे क्या दिखते हैं:
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
आशा है कि यह किसी और को भी मदद करता है।
यहाँ फाइल अटैचमेंट चेंजर नामक एक और सरल प्रोग्राम है जिसका उपयोग आप फ़ाइलों का नाम बदलने के लिए कर सकते हैं। यह एक पोर्टेबल प्रोग्राम है, इसलिए आप इसे USB ड्राइव पर ले जा सकते हैं।
मैंने JREN.BAT नामक एक हाइब्रिड JScript / बैच कमांड लाइन उपयोगिता विकसित की है जो नियमित अभिव्यक्ति खोज और नामों पर प्रतिस्थापित करके फ़ाइलों या फ़ोल्डरों का नाम बदल सकती है। यह शुद्ध स्क्रिप्ट है जो एक्सपी आगे से किसी भी विंडोज मशीन पर मूल रूप से चलेगी। पूर्ण प्रलेखन स्क्रिप्ट के भीतर एम्बेडेड है।
JREN.BAT मान लें कि आपकी वर्तमान निर्देशिका में है, या बेहतर अभी तक, आपके रास्ते में कहीं है, तो आपका नाम बदलने का कार्य तुच्छ हो जाता है।
jren "^\d+[ -]+(.+)\.txt$" "$1" /i
या
jren "^\d+[ -]+(?=.+\.)" "" /fm "*.txt"
विकल्प सहित कई विकल्प हैं, /S
जो उप-निर्देशिकाओं पर नाम बदलने का पुनरावर्ती कार्य करता है।
यदि आपको गंभीर शक्ति की आवश्यकता है और धन को बाहर निकालने के लिए तैयार हैं ... PowerGrep बाजार पर सबसे शक्तिशाली और बहुमुखी उपकरणों में से एक है ... आप PowerGrep के साथ लगभग कुछ भी नाम बदल सकते हैं ... यहां तक कि द्विआधारी खोज और प्रतिस्थापित ... यह RegEx Guru, Jan Goyvaerts द्वारा बनाया गया है ।