मैं एक फ़ाइल नाम में सभी अंडरस्कोर वर्णों ( _
) को एक स्थान ( ) के साथ बदलना चाहता हूं ।
जब मैं बहुत सारे _
वर्णों को प्रतिस्थापित कर सकता हूं, तो मैं यह कैसे जल्दी कर सकता हूं ?
मैं एक फ़ाइल नाम में सभी अंडरस्कोर वर्णों ( _
) को एक स्थान ( ) के साथ बदलना चाहता हूं ।
जब मैं बहुत सारे _
वर्णों को प्रतिस्थापित कर सकता हूं, तो मैं यह कैसे जल्दी कर सकता हूं ?
जवाबों:
vbScript को यह आपके लिए करना चाहिए। एक फ़ाइल बनाएं जिसका नाम "rename_underscores.vbs" है जिसमें निम्नलिखित शामिल हैं।
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("c:\test\")
For Each File In Folder.Files
sNewFile = File.Name
sNewFile = Replace(sNewFile,"_"," ")
if (sNewFile<>File.Name) then
File.Move(File.ParentFolder+"\"+sNewFile)
end if
Next
सुनिश्चित करें कि फ़ोल्डर का नाम सही है। (उदाहरण में, मैंने c: \ test का उपयोग किया है) और फिर नाम बदलने के लिए अपनी फ़ाइल पर डबल क्लिक करें।
मैं एक 3 पार्टी उपकरण का उपयोग करने की सलाह देता हूं जैसे बल्क का नाम उपयोगिता । यह मुफ़्त है और इसमें 1 एमबी से कम का इंस्टॉलर है।
यह डॉस बैट फाइल के दायरे में है। एक बैट फ़ाइल बनाएं (नया-> टेक्स्ट फ़ाइल, .bat के लिए एक्सटेंशन का नाम बदलें) फिर नीचे नीले वर्गों की प्रतिलिपि बनाएँ।
मैं इसे खंडों में विभाजित करता हूँ और समझाता हूँ कि यह क्या कर रहा है।
बाद में तुलना करने के लिए निर्देशिका की वर्तमान स्थिति को प्रिंट करें
dir /b
निर्देशिका में फ़ाइलों को सूचीबद्ध करें, फिर उन सभी के लिए जिनमें एक अंडरस्कोर और अंत में .txt है, उन पर ProcessFile कॉल करें।
for %%f in (*_*.txt) do call :ProcessFile %%f
goto :finished
वाक्यविन्यास "str =% str: x = y%" x के उदाहरणों को y से बदलता है। इस मामले में, हम कुछ भी नहीं के साथ "_" की जगह ले रहे हैं
:ProcessFile
set str=%1
rename %1 %str:_=%
goto :eof
बस!
अब यह केवल प्रिंट करता है जिसे बदल दिया गया था इसलिए हम पुष्टि कर सकते हैं कि यह अपेक्षित रूप से काम कर रहा है;
:finished
echo ----
dir /b
परिणाम (बल्ले फ़ाइल का हिस्सा नहीं)
baz_ing.txt
big_rawr.foo
foo_bar.txt
multiple_underscores_test.txt
----
bazing.txt
big_rawr.foo
foobar.txt
multipleunderscorestest.txt
जैसा कि दूसरों ने उल्लेख किया है, स्क्रिप्ट या बैच फ़ाइल का उपयोग किए बिना आप वास्तव में क्या करना चाहते हैं, इसका कोई तरीका नहीं है। उदाहरण के लिए, PowerShell में आप वह कर सकते हैं जो आप काफी आसानी से चाहते हैं:
cd "C:\Users\MyName\Documents\MyDirectory"
Dir | Rename-Item –NewName { $_.name –replace "_"," " }
बस अपनी निर्देशिका के पथ के साथ "C: \ Users \ MyName \ Documents \ MyDirectory" को बदलना सुनिश्चित करें।
अधिक विस्तार और अन्य विकल्पों के लिए, कुछ चीजों सहित, जिन्हें आप सिर्फ एक्सप्लोरर का उपयोग करके कर सकते हैं, यहां देखें: http://www.howtogeek.com/111859/how-to-batch-rename-files-in-windows-4-ways- टू-नाम बदलने-बहु-फ़ाइलें /
यहाँ मेरे बैच का नाम माणिक लिपि है । मैंने अन्य बैच का नाम बदलने वाले उपकरणों का उपयोग नहीं किया है, लेकिन मुझे लगता है कि मेरी स्क्रिप्ट का उपयोग करना बहुत आसान है और बहुत बहुमुखी है। यहाँ आपके मामले के लिए कमान है:
ruby bren.rb *_* "_/ "
मैंने अपने विंडो वातावरण को इस तरह से सेटअप किया है। bren.rb को किसी भी निर्देशिका से निष्पादन योग्य के रूप में निष्पादित किया जा सकता है।
विंडोज-आधारित नामकरण उपकरण, सबसे शक्तिशाली है, और यह मुफ़्त है। http://www3.telus.net/pfrank/
यह स्पष्ट रूप से इस सवाल का जवाब नहीं देता है ('एक्सप्लोरर में ..'), लेकिन मुझे ऐसा करने के लिए सबसे उपयोगी सॉफ्टवेयर मिला था एडोब ब्रिज (फ्री)
जोड़ा गया बोनस: रेगेक्स का समर्थन करता है!