कमांड लाइन लूप एक निर्देशिका में सभी फाइलों पर कमांड चलाने के लिए (यदि संभव हो तो, सब उप निर्देशिकाएं)


14

मुझे लगता है कि यह करना काफी आसान है, लेकिन मुझे विंडोज की कमांड लाइन उपयोगिताओं के साथ शून्य अनुभव है। मूल रूप से, मुझे एक निर्देशिका में सभी फ़ाइलों पर पुनरावृति करने की आवश्यकता है (महान अगर यह उप-निर्देशिका कर सकता है, लेकिन मैं इसे 5 निर्देशिकाओं में से प्रत्येक पर चला सकता हूं, यदि आवश्यकता हो), एक चर के रूप में नाम प्राप्त करें, और इसे चलाएं

"C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
   -colorspace Gray -colors 32 file_var file_var

मैंने लूप के लिए कमांड प्रॉम्प्ट में डायनामिकली नाम की फाइलें देखीं । क्या मैं इसका उपयोग करने में सक्षम होऊंगा (उपर्युक्त कमांड के साथ SET ... स्वैपिंग)? प्रश्न में कंप्यूटर पर स्थान सीमित है, इसलिए मैं इस चरण में इसे चलाने से पहले बैकअप नहीं कर सकता (बुरा, मुझे पता है)।


रॉबर्ट, यदि आप अपने स्वयं के प्रश्न का उत्तर देने में कामयाब रहे हैं, तो कृपया अपना स्वयं का उत्तर जोड़ें और इसे सही मान लें।
जूलियन नाइट

मुझे नहीं लगता कि आप जो चाहते हैं वह काफी है, इसका अंत ( "%%f" "%%f") केवल फ़ाइल नाम (पूरी तरह से योग्य पथ के साथ) को दो बार करेगा। आप शायद "%%f" "%%~dpnf.gif"आउटपुट फ़ाइल के विस्तार को बदलने के लिए कुछ का उपयोग करना चाहते हैं ।
21

@JulianKnight - धन्यवाद, मैंने वास्तव में जब वापस जाने का प्रयास किया, लेकिन मुझे लगता है कि ऐसा करने के लिए एक मजबूर प्रतीक्षा थी। तब से प्रश्न के बारे में भूल गया।
रॉबर्ट

जवाबों:


13

अजीब, एक प्रतिक्रिया थी जिसमें पुनरावर्ती भाग था।

अच्छी तरह से, प्रति फ़ाइल कैसे लूप के माध्यम से बैच फ़ाइल में वाइल्डकार्ड से मेल खाते हैं , मैं इसे प्राप्त करने में सक्षम था। यहाँ यह दिखाया गया है:

 cd path_to_root
 for /R %%f in (*.tif) do (
 "C:\Program Files\ImageMagick-6.7.6-Q16\convert.exe" -compress LZW 
    -colorspace Gray -colors 32 "%%f" "%%f"
 )

5

PowerShell खोलें

$files = Get-ChildItem -Recurse 
foreach ($file in $files){
    c:\windows\System32\notepad.exe $file.FullName
}

Get-ChildItem वर्तमान उपनिर्देशिका से ऑब्जेक्ट के रूप में फ़ाइलों की एक सूची प्राप्त करता है। "-recurse" में उप-निर्देशिकाएं शामिल होंगी। यह इसे एक सरणी $ फाइल्स में रखता है।

प्रत्येक फ़ाइल के माध्यम से फोरच लूप चक्र और प्रत्येक फ़ाइल के पूर्ण फ़ाइल नाम पथ के कमांडलाइन तर्क के साथ नोटपैड को कॉल करता है।

चेतावनी: कुछ छोटे पाठ फ़ाइलों के साथ निर्देशिका में उपरोक्त कोड का परीक्षण करें, क्योंकि यह प्रत्येक फ़ाइल के लिए नोटपैड का एक उदाहरण खोल देगा।

आपको यह अंदाजा लगाना चाहिए कि आप जो करना चाहते हैं, उसके बारे में कैसे जाना है।

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