2013-08-18 9 views
8

के साथ PowerShell में फ़ाइलों का थोक नामकरण मुझे पावरहेल में फ़ाइलों का नाम बदलने के बारे में इस साइट पर कई उत्तरों मिले हैं, इसलिए मुझे खेद है कि यह दोहराना है। मैंने Google पर 5 घंटे और विभिन्न वेबसाइटों को समझने की कोशिश कर रहे हैं। मैंने वास्तव में इस अच्छी तरह से व्याख्या करने की कोशिश की है। मैं प्रोग्रामर नहीं हूं जो सिर्फ अपनी फाइलिंग के बारे में सावधानीपूर्वक है।अनुक्रमिक संख्यात्मक प्रत्यय

मेरे पास सालाना और महीने तक फ़ाइलों में क्रमबद्ध 14,000 चित्र हैं लेकिन कई कैमरों के साथ लिया गया है और मैं फ़ाइल नाम को उस तारीख को प्रतिबिंबित करना चाहता हूं। उदाहरण के लिए 16 अक्टूबर, 1 99 8 चित्र 1998 \ 10 अक्टूबर \ 19981016 नामक फ़ोल्डर में हैं। मैं चाहता हूं कि सभी चित्रों का नाम 19981016_0001 19981016_0002 आदि। मैंने कई सुझावों का प्रयास किया लेकिन यह काम नहीं किया है। शायद प्रोग्रामर ज्ञान की कमी के कारण हाहा। क्या कोई मेरी मदद कर सकता है और मुझे डमी निर्देश दे सकता है? मैं उस बिंदु पर जा सकता हूं जहां यह उस फ़ोल्डर को सूचीबद्ध करता है जिसे मैं बदलना चाहता हूं लेकिन मैं वास्तव में इसे बदलने में असमर्थ हूं। मेरी सभी तस्वीरें हैं .jpg। मैंने जो किया उसके बारे में एक स्क्रीनशॉट संलग्न करने की कोशिश की लेकिन दुर्भाग्य से मैं नहीं कर सकता क्योंकि मैं यहां बहुत नया हूं। अग्रिम में धन्यवाद!

मैंने इसे गड़बड़ करने के मामले में प्रतियों की एक अस्थायी फ़ाइल बनाई। मैंने अपनी फ़ाइल लोड करने में सफलतापूर्वक प्राप्त करने के बाद cd "C:\Documents and Settings\Brooke LastName\Desktop\Temp" टाइप करके शुरू किया, मैंने इस मंच पर पाया एक सूत्र का उपयोग किया।

ls *jpg | Foreach {$i=1} {Rename-Item _ -NewName ("$($.19981016){0:00000000#} .jpg" -f $i++) -whatif} 

त्रुटि मुझे मिल गया

Unexpected token ' .19981016' in expression or statement. 

At line:1 char:12 + $.19981016 <<<< 

त्रुटि कई बार दोहराया कहा।

मुझे वेब पर कई सूत्र मिलते हैं लेकिन अधिकांश बनाई गई फ़ाइलें जो उदाहरण के लिए अवकाश (1) .jpg के लिए ब्रांड्स के साथ संख्या होगी। मैं अपनी तिथि के अंत में अंडरस्कोर के बाद चार अंकों का काउंटर चाहता हूं, उदा। 19981016_0001

उत्तर

22

वाक्यविन्यास रास्ता बंद है। कुछ मुद्दों:

  • मुझे यकीन है कि क्या $($.19981016) उत्पादन करने का इरादा था नहीं कर रहा हूँ, लेकिन $() कोष्ठक में अभिव्यक्ति का मूल्यांकन करता है और स्ट्रिंग में परिणाम interpolates, और तुम क्योंकि त्रुटि हो रही है $.19981016 मान्य अभिव्यक्ति नहीं है। निर्देशिका में प्रत्येक .jpg फ़ाइल के लिए त्रुटि दोहराई जाएगी।
  • {0:00000000#} स्वरूपित स्ट्रिंग में शून्य-गद्देदार संख्या 9 अंकों का निर्माण करेगा, लेकिन ऐसा करने का एक छोटा तरीका {0:D9} है। हालांकि, मैंने सोचा था कि आप शून्य-गद्देदार संख्या को 4 अंक प्राप्त करना चाहते थे, इसलिए {0:0000#} या {0:D4} होना चाहिए।
  • मुझे यकीन नहीं है कि Foreach {$i=1} { [...] क्या करना है। कीवर्ड foreach एक foreach पाश मतलब हो सकता है, या यह Foreach-वस्तु के लिए आशुलिपि हो सकता है। इस संदर्भ में, एक पाइपलाइन से इनपुट प्राप्त करना, यह जरूरी है कि बाद वाला, लेकिन यह वाक्यविन्यास किसी भी तरह से गलत है।

यह अगर मैं विवरण सही ढंग से समझ, तुम क्या चाहते हो जाएगा:

$i = 1 
Get-ChildItem *.jpg | %{Rename-Item $_ -NewName ('19981016_{0:D4}.jpg' -f $i++)} 

फ़ाइल नाम 19981016_0001.jpg, 19981016_0002 हो जाएगा।जेपीजी, 19981016_0003.jpg, आदि

कुछ नोट:

  • आपने कहा कि आप 19981016_0001 की तरह फ़ाइल नाम चाहते हैं, लेकिन मैं आपको .jpg विस्तार रखना चाहते हैं यह सोचते हैं रहा हूँ।
  • आप अन्यथा यह 0 से शुरू कर देंगे अगर यह अभी तक परिभाषित नहीं, या बुरा अभी तक, कुछ अन्य नंबर से $ i ही PowerShell सत्र में पहले से इस्तेमाल किया गया था, तो $ i प्रारंभ करने की जरूरत है। उदाहरण के लिए, आप निर्देशिका में 1,432 .Jpg फ़ाइलों है, और आप -WhatIf के साथ पहली बार आदेश चला, और फिर असली के लिए में चलाते हैं तो, संख्या शुरू कर देंगे 1432.
  • $ से मैं वेतन वृद्धि $ ++ मैं 1 तक। हालांकि, यदि आप इसे एक मान के रूप में उपयोग कर रहे हैं, तो यह के बाद बढ़ता है मान को पढ़ा जाता है; यही कारण है कि अगर $ i अपरिभाषित है, यह से 0.
  • शुरू कर देंगे है प्राप्त करें-ChildItemls के समान है। मैं देशी PowerShell नाम का इस्तेमाल किया है, लेकिन वे परस्पर विनिमय कर रहे हैं (ls, dir, और GCI के लिए प्राप्त करें-ChildItem सभी उपनामों हैं)।
  • % {} के लिए Foreach-वस्तु
+0

बहुत बहुत शुक्रिया आशुलिपि है! यह पूरी तरह से काम किया। – Brooke

+0

यदि यह आपकी समस्या का समाधान करता है, तो उत्तर के बाईं ओर खोखले चेक चिह्न पर क्लिक करके उत्तर को स्वीकार करें (क्लिक होने पर यह हरा हो जाता है)। –

+0

बहुत उपयोगी! विवरण के लिए धन्यवाद .. जहां पूरा दस्तावेज मिल सकता है? :/मैं सटीक लेख नहीं ढूंढ पाया लेकिन यह धागा, धन्यवाद! – Stphane

संबंधित मुद्दे