2008-11-10 10 views
5

मेरे पास एक छोटी पर्ल स्क्रिप्ट (विंडोज़ पर) है जो मेरे दिन-प्रति-दिन व्यवसाय की सहायता के लिए मेरे लिए कुछ फाइलें जांचती है। फिलहाल यह कुछ बाहर प्रिंट की तरह ...मैं पर्ल कमांड लाइन एप्लिकेशन पर प्रगति प्रदर्शन कैसे अपडेट कर सकता हूं?

0% 
25% 
50% 
75% 
Complete 

लेकिन मैं स्क्रिप्ट याद कर सकते हैं मैं पिछले है कि एक पंक्ति-दर-पंक्ति आधार पर प्रगति प्रिंट नहीं था में प्रयोग किया जाता है, लेकिन जो उत्पादन अद्यतन प्रदर्शन पर, संभावित रूप से कर्सर को वापस ले जाकर और प्रिंटिंग के ऊपर क्या था।

कोई भी जानता है कि जादू की क्या आवश्यकता है? पोर्टेबिलिटी मेरे लिए महत्वपूर्ण नहीं है, लिपि काफी डिस्पोजेबल है।

उत्तर

6

अन्य उत्तर के अलावा, \ r वापस वर्तमान पंक्ति

2

कर्सर को वापस ले जाने के लिए आपको बैकस्पेस वर्ण '\ b' प्रिंट करने में सक्षम होना चाहिए ताकि आप पहले जो मुद्रित करते हैं उसे ओवरराइट कर सकें।

0

मुझे नहीं पता कि यह पर्ल में काम करता है, लेकिन सी/सी ++ में आप बैकस्पेस के लिए

\b
का उपयोग कर सकते हैं। उनमें से कई का उपयोग करके, आप पुराने मूल्यों को ओवरराइट करने के लिए कर्सर को स्थानांतरित कर सकते हैं।

8

की शुरुआत करने के लिए आप curses इस्तेमाल कर सकते हैं जाने के लिए और एक अच्छा प्रगति बार कर देगा।

संपादित: या करना चाहते हैं कुछ इस तरह:

print "#####         [ 10%]\r"; 
# Do something 
print "##########       [ 20%]\r"; 
# Do something else 
print "###############      [ 30%]\r"; 
# Do some more 
# ... 
# ... 
# ... 
print "##################################### [100%]\n"; 
print "Done.\n"; 
+0

मुझे लगता है कि विंडोज़ पर आपको 'बिनमोड (STDOUT)' कॉल करने की आवश्यकता है, इससे पहले कि आप चाहते हैं कि \ r' काम करेगा। –

6

क्या तुमने कभी पर्ल में कुछ करने के लिए की जरूरत है, तो बहुत संभव है कि किसी को यह किया और CPAN पर अपलोड गया है। "progress" in their name के साथ कुछ मॉड्यूल देखें।

+0

जैसे कि समय :: प्रोग्रेस जो विंडोज –

6

आपको Smart Comments में रुचि हो सकती है। यह आपकी प्रगति सलाखों को कोडिंग से शायद आसान होगा।

+0

पर बहुत अच्छा काम करता है, धन्यवाद, यह एक बहुत ही स्मार्ट ;-) मॉड्यूल है जिसे आप यहां अनुशंसा कर रहे हैं। –