現在のファイル名が.rbで終わる場合は「Ruby {filename_here}」コマンドを実行し、.plで終わる場合は「Perl {filename_here}」コマンドをnotepad ++で実行させたいです。 NppExecプラグインを使おうとしましたが、条件付きのプラグインを使用できないため、バットを作成しました
@echo off
if /i %~sx1 == .pl Perl "%~f1"
if /i %~sx1 == .rb Ruby "%~f1"
if /i %~sx1 == .php php "%~f1"
これで、C:\ Program Files\Notepad ++> runscript "D\pl.pl"のようなコマンドラインから使用でき、正常に動作します。では、Notepad ++のキーを「runscript $(FULL_CURRENT_PATH)」にバインドするにはどうすればよいですか? [ファイル名を指定して実行]-> [ファイル名を指定して実行]メニュー(F5)を使用しようとしましたが、機能しないようです。
コマンドの最後にファイル名を入力する必要があります。 Run(F5)ダイアログで、これを試してください。
runscript $(FULL_CURRENT_PATH)
テストしたい場合は、最後に& pause
を付けて、機能するかどうかを確認することができます。
また、ファイル拡張子ラベルを付けた恐ろしいGOTO
コマンドを使用して、すべてのファイルが各拡張子をテストしないようにスクリプトを少し調整することもできます。
@echo off
GOTO %~sx1
:.pl
Perl "%~f1"
GOTO end
:.rb
Ruby "%~f1"
GOTO end
:.php
php "%~f1"
GOTO end
:end
Windowsで実行されているnotepad ++バージョン6.2では、引用符を付けて"$(FULL_CURRENT_PATH)"を使用するだけで、ファイルに関連付けられているデフォルトのプログラムを使用してファイルが開かれます。したがって、「notepad ++で編集」が[〜#〜] not [〜#〜]デフォルトのダブルクリックアクションであることを確認してください。
それが何をしたかを見ている間、それがシェルウィンドウを開いたままにするようにそれを機能させるのに問題がありました。 最初に_cmd /c
_を追加するまで、最後に「&pause」を付けることは役に立たなかったようです。
cmd /c c:\php\php.exe -l "$(FULL_CURRENT_PATH)" & pause
コマンドの結果を画面に表示するには、Georgeが提案したように/ kスイッチを使用できます:cmd /k c:\php\php.exe -l "$(FULL_CURRENT_PATH)"
これはうまく機能します。Notepad++で構文をすばやくチェックするために使用します。
デフォルトのプログラムで現在のファイルを開くことができる RunMe というプラグインがあります。 「$(FULL_CURRENT_PATH)」コマンドは現在のディレクトリをファイルパスに変更し、そのコマンドはN ++パスでファイルを実行するため、より良い解決策です。
次のスクリプトを使用して、npp_execを試すことができます。
NPP_SAVE
SET Executer = execute$(EXT_PART)
NPP_EXEC "$(Executer)"
次に、execute.rbという名前のスクリプトを使用します。
Perl $(FULL_CURRENT_PATH) //or something like that
この方法について説明します ここ