विंडोज: पाठ बैच के माध्यम से लूप


0

मैं MyFFVideoConverter सॉफ़्टवेयर का उपयोग करता हूं। मैं एक बैच स्क्रिप्ट चलाना चाहूंगा। मेरा कोड इस तरह दिखता है:

-i intro.jpg -i <input_file> -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 <output_file>

यह काम करता है लेकिन मैं एक का उपयोग करना चाहते हैं mylist.txt इसके बजाय कमान -i intro.jpg। स्क्रिप्ट को केवल पहली प्रविष्टि को चुनना चाहिए mylist.txt उदाहरण के लिए फ़ाइल intro1.jpg, और बाद में पहली प्रविष्टि को हटा दें। अगली बार स्क्रिप्ट का उपयोग करेंगे intro2.jpg और इस नई पहली प्रविष्टि आदि को हटा दें।


Mylist.txt इस तरह दिखेगा: intro1.jpg intro2.jpg intro3.jpg इत्यादि हर लाइन के लिए एक प्रविष्टि।
J. J.

जवाबों:


0

आप अपनी वर्तमान कमांड को इस तरह से लपेट सकते हैं:

for line in $(cat mylist.txt); do MyFFVideoConverter ... -i $line ; done

(बदलें ... आपके अन्य सभी विकल्पों द्वारा)

यह लूप आपके कमांड को एक बार प्रति पंक्ति में चलाएगा mylist.txt, हर बार पैरामीटर के रूप में लाइन की सामग्री का उपयोग करते हुए -i स्विच।

यह से कुछ भी नहीं हटाता है mylist.txt फ़ाइल। आप इसे अंत में पूरी तरह से हटा सकते हैं rm

अगर आपको वास्तव में सिर्फ पहली पंक्ति चुनने और उसे निकालने की जरूरत है,

line = $(head -1 mylist.txt)
MyFFVideoConverter ... -i $line

और फिर से पहली पंक्ति को हटाने के लिए mylist.txt मैं आपको टाल देता हूं https://unix.stackexchange.com/questions/96226/delete-first-line-of-a-file जो समाधान का एक गुच्छा देता है।

उपरोक्त सभी मान लें कि आपकी पंक्तियों (फ़ाइल नाम) में रिक्त स्थान नहीं है, या शेल ((, & amp ;, आदि) द्वारा व्याख्या किए गए वर्ण हैं। यदि ऐसा है तो आपको अधिक सतर्क रहने की आवश्यकता होगी, और उद्धरणों के साथ चीजों को सुरक्षित रखें।


काम नहीं किया। निम्न स्क्रिप्ट ने काम किया लेकिन इसमें पृष्ठभूमि चित्र के समान चित्र हमेशा होता है: C:\VideoConverter\Applications\ffmpeg.exe -f image2 -loop 1 -framerate 0.1 -i pic004.jpg -i %~d1%~p1%~n1.mp3 -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 -f mp4 %~d1%~p1%~n1.mp4
J. J.

मैंने यह कोशिश की: C:\VideoConverter\Applications\ffmpeg.exe for line in $(cat mylist.txt); -f image2 -loop 1 -framerate 0.1 -i %~d1%~p1%~n1.mp3 -codec:v libx264 -s 1920x1080 -acodec copy -strict experimental -movflags faststart -t 00:10:10.00 -f mp4 %~d1%~p1%~n1.mp4 -i $line ; done लेकिन मुझे कोई सफलता नहीं मिली
J. J.

मैंने इसे इस स्क्रिप्ट के साथ आज़माया: dmeresources.com/index.php/professional-community/news-blogs/... मैं अब myvideoconverter फ़ोल्डर से केवल ffmpeg.exe का उपयोग करता हूं।
J. J.

मुझे नहीं पता था कि आप विंडोज पर थे, क्षमा करें। मेरा उत्तर यूनिक्स आधारित प्रणालियों के लिए है। कोई विचार नहीं है कि इसे विंडोज के तहत कैसे चलाया जाए लेकिन मुझे यकीन है कि आप वहां भी लूप कर सकते हैं
Patrick Mevzek

मुझे यह पाठ के माध्यम से लूप में मिला: ss64.com/nt/for_f.html , लेकिन मुझे नहीं पता कि कोड को मेरे मामले में कैसा दिखना है।
J. J.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.