2009-07-09 6 views
16

मैं नोटपैड ++ को "ruby {filename_here}" कमांड बनाना चाहता हूं यदि वर्तमान फ़ाइल नाम .rb और "perl {filename_here}" के साथ समाप्त होता है, तो यह .pl के साथ समाप्त होता है। मैं NppExec प्लगइन का उपयोग करने की कोशिश की है, लेकिन यह सशर्त सामान नहीं कर सकते, तो मैं एक बल्ला लिखानोटपैड ++ रन स्क्रिप्ट को इसके नाम के आधार पर कैसे बनाया जाए?

@echo off 

if /i %~sx1 == .pl perl "%~f1" 
if /i %~sx1 == .rb ruby "%~f1" 
if /i %~sx1 == .php php "%~f1" 

अब मैं सी की तरह कमांड लाइन से इसका इस्तेमाल कर सकते हैं: \ Program Files \ नोटपैड ++> runscript "डी \ pl.pl" और यह ठीक काम करता है। अब मैं नोटपैड ++ में "रनस्क्रिप्ट $ (FULL_CURRENT_PATH)" में कुछ कुंजी कैसे बांध सकता हूं? मैंने रन-> रन मेनू (F5) का उपयोग करने का प्रयास किया है, लेकिन यह काम नहीं कर रहा है ..

उत्तर

21

आपको आदेश के अंत में फ़ाइल का नाम रखना होगा। बस देखने के लिए अगर यह काम किया

runscript $(FULL_CURRENT_PATH) 

आप इसे बाहर का परीक्षण करना चाहते हैं, तो आप अंत में एक & pause डाल सकता है,: भागो (F5) संवाद में, इस प्रयास करें।

तुम भी थोड़ा अपनी स्क्रिप्ट में बदलाव कर सकता है, ताकि हर फ़ाइल प्रत्येक एक्सटेंशन का परीक्षण नहीं होता है, फाइल एक्सटेंशन लेबल के साथ खतरनाक GOTO कमांड का उपयोग करके:

@echo off 
GOTO %~sx1 
:.pl 
    perl "%~f1" 
    GOTO end 
:.rb 
    ruby "%~f1" 
    GOTO end 
:.php 
    php "%~f1" 
    GOTO end 
:end 
+11

वर्तमान नोटपैड ++ संस्करण '$ (FULL_CURRENT_PATH) में पहले से ही फ़ाइल का नाम है। –

+1

यहां एक त्रुटि है, आपको यह सुनिश्चित करने की ज़रूरत है कि आप रनस्क्रिप्ट "$ (Full_CURRENT_PATH)" का उपयोग करें या अन्यथा आपको एक त्रुटि मिलेगी यदि आप स्क्रिप्ट उस फ़ोल्डर में हैं जिसमें रिक्त स्थान हैं। –

+1

रनस्क्रिप्ट के लिए कोई ज़रूरत नहीं है।बल्लेबाजी करें - बस "$ (Full_CURRENT_PATH) करें" और विंडोज को फ़ाइल को सही निष्पादन योग्य को तब तक भेजना चाहिए जब तक कि फ़ाइल एसोसिएशन और PATHEXT सही ढंग से सेट हो जाएं – dankingsbury

1

आप निम्न स्क्रिप्ट का उपयोग कर npp_exec की कोशिश कर सकते :

NPP_SAVE 
SET Executer = execute$(EXT_PART) 
NPP_EXEC "$(Executer)" 

और फिर एक स्क्रिप्ट नामित execute.rb का उपयोग करें:

perl $(FULL_CURRENT_PATH) //or something like that 

इस विधि का वर्णन here

4

मुझे इसे काम करने में समस्याएं थीं ताकि जब मैं इसे देख सकूं तो यह खोल खिड़की खुलता रहता है। अंत में "& ठहराव" लाना मदद करने के लिए, जब तक कि मैंने शुरू में cmd /c जोड़ा नहीं मालूम था:

cmd /c c:\php\php.exe -l "$(FULL_CURRENT_PATH)" & pause

स्क्रीन पर आदेश परिणाम रखने के लिए, आप उपयोग कर सकते हैं/के स्विच, जैसा कि जॉर्ज द्वारा सुझाया गया है: cmd /k c:\php\php.exe -l "$(FULL_CURRENT_PATH)"

यह बहुत अच्छा काम करता है, मैं इसे नोटपैड ++ में त्वरित वाक्यविन्यास जांच के लिए उपयोग करता हूं।

+2

आप/c के बजाय/k का उपयोग करने का भी प्रयास कर सकते हैं और फिर रोकें और रोकें।/सी समाप्त होता है जहां/के बनी हुई है। – George

+1

यह एक अच्छा है, जॉर्ज। ऐसा लगता है कि एक आदमी कभी भी अपने खोल स्विच को पर्याप्त नहीं सीख सकता :) – userfuser

6

नोटपैड ++ संस्करण 6.2, विंडोज पर चलने में, बस, का उपयोग "$ (FULL_CURRENT_PATH)", उद्धरण के साथ ऐसा फ़ाइल फाइल करने के लिए जुड़े डिफ़ॉल्ट प्रोग्राम का उपयोग कर खोला जाएगा। तो, सुनिश्चित करें कि "नोटपैड ++ के साथ संपादित करें" डिफ़ॉल्ट डबल क्लिक कार्रवाई नहीं है।

1

प्लगइन RunMe है जिसे डिफ़ॉल्ट फ़ाइल में वर्तमान फ़ाइल खोल सकते हैं। यह "$ (FULL_CURRENT_PATH)" कमांड से बेहतर समाधान है क्योंकि यह वर्तमान निर्देशिका को फ़ाइल पथ में बदलता है और वह आदेश फ़ाइल को N ++ पथ में चलाता है।

+0

मैंने 'मेनमेनू> रन' के लिए शॉर्टकट कमांड को मंजूरी दे दी है और 'शैल निष्पादन वर्तमान फ़ाइल' को 'F5' पर सेट करें लेकिन यह नहीं लेता है। अजीब। अगर मैं मेनू से फ़ंक्शन को कॉल करता हूं तो यह काम करता है। – bgmCoder

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