2012-10-10 7 views
5

तो, मैं वर्तमान में "लोडिंग स्क्रीन" बना रहा हूं, और संभवतः मेरे कोडिंग में कुछ जगह सहेजने के लिए, मैं जानना चाहता हूं कि आप पहले से ही बनाई गई रेखा को संपादित कर सकते हैं या नहीं। मेरे पास लोडिंग के एक चरण के रूप में शायद एक ब्रैकेट [] होगा, तो एक ब्रैकेट डालना संभव होगा, फिर प्रतीक्षा करें और देखें कि क्या उपयोगकर्ता 1-2 सेकंड के लिए सी (जारी रखने के लिए) दबाता है, और यदि अगले चरण में नहीं जाता है ([] [])? मेरे पास वर्तमान में एक स्क्रिप्ट है जहां [] load के रूप में सेट है और प्रत्येक चरण के लिए, मैं CLS और फिर echo %LOAD%[] करता हूं।क्या विंडोज बैच में पहले से ही बनाई गई लाइन को संपादित करना संभव है?


इसके अलावा, क्या हुआ अगर मैं सिर्फ एक लाइन पर एक स्थिति अद्यतन करना चाहते हैं, जैसे:

Checking status... 
Loading server... 

और फिर आप अगर

Checking status... OK 
Loading server... done 

बोनस अंक मुझे जैसे एक चरित्र मिल सकता है जो बैच के साथ संगत है।


+2

नहीं है, लेकिन आप का उपयोग कर सकते है 'cls' और एक गोटो लूप या शीर्षक पट्टी (शीर्षक 'कमांड' देखें)। यह चर्चा भी देखें: http://ss64.org/viewtopic.php?id=919। – npocmaka

+0

@npocmaka: आपको हमारी टिप्पणी हटा देना चाहिए और इसके बजाय इसे उत्तर देना चाहिए। –

+0

हाँ, मुझे पता है। यही वह है जो मैं वर्तमान में कर रहा हूं। –

उत्तर

6

आप सीएलएस ommit और set /p की मदद से पूर्ण स्क्रीन पुनः कर सकते हैं, के रूप में set /p नहीं उत्पादन एक नई पंक्ति करता है, आप पाठ जोड़ सकते हैं।

आम तौर पर set /p एक चर एक उपयोगकर्ता द्वारा inputted के लिए पाठ निर्दिष्ट करने के लिए है, लेकिन अगर आप NULसे पुनर्निर्देशन का उपयोग यह बस पाठ आउटपुट।

@echo off 

for /L %%n in (1 1 5) do (
    <nul set /p ".=[]" 
    ping -n 2 localhost > nul 
) 
echo(
echo The end 

आपके द्वारा पूछे जाने वाले स्टेटस अपडेट को उसी तरह से संभाला जा सकता है, क्योंकि यह केवल लाइन में कुछ जोड़ता है।
यदि आप लाइन या पूरी लाइन के हिस्सों को बदलना चाहते हैं, तो आपको कर्सर को वापस या लाइन की शुरुआत में स्थानांतरित करने की आवश्यकता है।
दोनों बैकस्पेस चरित्र या कैरिज रिटर्न कैरेक्टर के साथ किए जा सकते हैं।

यह एक नमूना है जो एक निश्चित स्क्रीन स्थान

setlocal EnableDelayedExpansion 
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a" 
for /L %%n in (1 1 1000) do (
    <nul set /p ".=%%n!CR!" 
) 
+0

यह एक महान चाल है। धन्यवाद! –

3

एक blockchar बनाना पर गिना जाता है की तरह साथ

setlocal EnableDelayedExpansion 
for /F "usebackq tokens=1" %%c in (
    `forfiles /p "%~dp0." /m "%~nx0" /c "cmd /c echo 0xde"`) do (
    set BlockChar=%%c 
) 
echo %BlockChar% 

धन्यवाद किया जा सकता है dbenham को Generate nearly any character, including TAB, from batch

+0

आप इसे एक साथ रखने के लिए अपने अन्य उत्तर के साथ इसे मर्ज करना चाहते हैं। –

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

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