2013-04-14 10 views
7

पर मानक इनपुट लेना मैं नए नोट्स बनाने, पाठ और शीर्षक को तर्क के रूप में दर्ज करने के लिए Evernote's ENScript.exe का उपयोग करना चाहता हूं। समस्या यह है कि ENScript केवल पाठ को फ़ाइल के माध्यम से या मानक इनपुट के माध्यम से दर्ज करने की अनुमति देता है।विंडोज कमांड लाइन

मेरे वर्तमान कार्यवाही के लिए मैं एक फ़ाइल को तर्क लिखने के लिए .bat फ़ाइल का उपयोग करता हूं, फिर फ़ाइल को इंगित करने के लिए /s तर्क के साथ ENScript को कॉल करें, लेकिन यह डिफ़ॉल्ट शीर्षक को अस्थायी फ़ाइल के फ़ाइल नाम पर बल देता है (एक व्यवहार जो मैं नहीं चाहता)।

तो मेरा सवाल है: क्या विंडोज कमांड लाइन पर "नकली" मानक इनपुट का कोई तरीका है ताकि मैं नोट टेक्स्ट उत्पन्न करने के लिए एक तर्क (किसी अन्य प्रोग्राम से पारित) का उपयोग कर सकूं? स्क्रिप्ट की शुरुआत

ENScript.exe createNote /i %1 

मानक इनपुट के साथ कुछ होगी।

उत्तर

8

आप एक पाइप ऑपरेशन की तलाश में हैं जो एक कमांड के आउटपुट को कैप्चर करता है और इसे अगले इनपुट के रूप में भेजता है। यह अधिकांश ऑपरेटिंग सिस्टम में एक मानक क्षमता है।

विंडोज अध्यक्ष एवं प्रबंध निदेशक के लिए पाइप प्रतीक है |

आपकी स्क्रिप्ट के रूप में सरल रूप में हो सकता है:

@echo %~2|@ENScript.exe createNote /i %1 

अपनी स्क्रिप्ट MakeNote.bat कहा जाता है, तो आप इसे

MakeNote "your title" "This is the text of your note" 
की तरह कहेंगे
0

एक "नकली" पुनर्निर्देशन का उपयोग करके मानक इनपुट कर सकते हैं:

command args... < filename args... 

जहां < का मतलब इनपुट पुनर्निर्देशन ("फ़ाइल नाम से मानक इनपुट टर्मिनल के बजाय < के बाद पढ़ने के लिए")।

(ध्यान दें कि वर्ष विंडोज या DOS प्रोग्राम टर्मिनल से सीधे पढ़ सकते हैं, इनपुट पुनर्निर्देशन बेकार बना रही है, यह उम्मीद है कि Evernote के रूप में हाल ही में के रूप में कुछ करने के लिए लागू नहीं होगा।)

अपने उदाहरण के लिए:

ENScript.exe < "%1" 

पुनर्निर्देशन से पहले या बाद में अधिक तर्क जोड़ने के लिए स्वतंत्र महसूस करें। उदाहरण के लिए, यदि आपकी स्क्रिप्ट को script filename title कहा जाएगा, तो आप ENScript /i "%2" < "%1" को आमंत्रित करना चाहेंगे।

+0

दूसरा "तर्क ..." कोई समझ नहीं आता है। यदि डेटा स्रोत तर्क के साथ या बिना कमांड है, तो '' '' '' '' '' '' '' ~ 'पाइप का उपयोग करें। –

+0

अगर मुझे यह जांचने का प्रयास करते समय त्रुटि "सिस्टम निर्दिष्ट फ़ाइल नहीं मिल पाती है", तो इसका मतलब यह होगा कि यह केवल तभी काम करेगा जब यह टर्मिनल से सीधे पढ़ता है? बस 'ENScript.exe createNote <"कोशिश कर रहा है 123' और त्रुटि मिली। – Ryan

+0

@BenVoigt फ़ाइल नाम को तर्क नहीं मिलता है; मैं यह दिखाने की कोशिश कर रहा था कि कमांड लाइन पर पुनर्निर्देशन महत्वपूर्ण नहीं है। @Ryan Do आपके पास 'टेस्टिंग 123' नाम की एक फ़ाइल है? यही है कि यह नोट टेक्स्ट को पढ़ेगा। – michaelb958

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