web-dev-qa-db-ja.com

Notepad ++にその名前に基づいてスクリプトを実行させる方法は?

現在のファイル名が.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)を使用しようとしましたが、機能しないようです。

17
Fluffy

コマンドの最後にファイル名を入力する必要があります。 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
21
akf

Windowsで実行されているnotepad ++バージョン6.2では、引用符を付けて"$(FULL_CURRENT_PATH)"を使用するだけで、ファイルに関連付けられているデフォルトのプログラムを使用してファイルが開かれます。したがって、「notepad ++で編集」が[〜#〜] not [〜#〜]デフォルトのダブルクリックアクションであることを確認してください。

6
Eduardo Poço

それが何をしたかを見ている間、それがシェルウィンドウを開いたままにするようにそれを機能させるのに問題がありました。 最初に_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++で構文をすばやくチェックするために使用します。

5
userfuser

デフォルトのプログラムで現在のファイルを開くことができる RunMe というプラグインがあります。 「$(FULL_CURRENT_PATH)」コマンドは現在のディレクトリをファイルパスに変更し、そのコマンドはN ++パスでファイルを実行するため、より良い解決策です。

1
Greck

次のスクリプトを使用して、npp_execを試すことができます。

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

次に、execute.rbという名前のスクリプトを使用します。

Perl $(FULL_CURRENT_PATH) //or something like that

この方法について説明します ここ

1
Apanatshka