2015-06-24 3 views
6

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

set "output=  text" 
<nul set /p "=!output!" >> "%resultFile%" 
compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2>> "%resultFile%" 

मैं एक टैब वर्ण echo <TAB> >> "%resultFile%" मुद्रित करने के लिए कोशिश की, लेकिन यह मुझे एक त्रुटि दे दी

text1 

कोई रिक्त स्थान के साथ मेरे कोड प्रिंट text1: अपेक्षित उत्पादन की तरह है ">> इस समय अप्रत्याशित था।" मुझे क्या करना चाहिए? अग्रिम में धन्यवाद!

उत्तर

1

यह अच्छी तरह से काम करता है:

set "output=  text" 
>> "%resultFile%" echo %output% 

तो क्या हुआ के बारे में बैच अपने आप में आदेश उत्पादन जोड़कर?

set "output=  text" 
call compare -metric NCC "a.jpg" "b.jpg" "c.jpg" 2> temp.txt 
set /p number=<temp.txt 
del temp.txt 
>> "%resultFile%" echo %output%%number% 

https://stackoverflow.com/a/2340018/711006 देखें। मैं for विकल्प पसंद करूंगा लेकिन यह त्रुटि आउटपुट के लिए काम नहीं करता है।

संपादित

ओपी संपादन यह करने के लिए अंतिम पंक्ति का सुझाव दिया:

echo !output!!number! >> "%resultFile%" 

! 'के बजाय % रों की जरूरत है जब आदेशों एक के रूप में, एक साथ विस्तार किया जाता है, उदाहरण के लिए if या for ब्लॉक का हिस्सा। हालांकि, किसी को पहले setlocal EnableDelayedExpansion कमांड जारी करना होगा और हमने इस प्रश्न में इसका उल्लेख नहीं किया है।

और मैं आगे कमान और उत्पादन पुनर्निर्देशन की अदला-बदली के बारे में पढ़ सिफारिश करेंगे: Problems with an extra space when redirecting variables into a text file

+0

@ozcanovunc कृपया सुझाव पेस्ट पर कोड टिप्पणी अगली बार में बदल जाता है, तो हम एक साथ इस परिवर्तन पर चर्चा कर सकते हैं और हर किसी को अपने विचारों का अनुसरण कर सकते हैं। – Melebius

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