NppExec Notepadd++ 不是预期的输出

NppExec Notepadd++ not expected output

我有以下测试脚本:

<?php
    echo 'Hello'            // mistake - missing semicolon
    echo 'Hi';          
    echo $hi;               // mistake - undefined variable         
?>

我试图通过 NppExec 检查这个脚本 - 我使用了命令:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

我得到了意外的输出:

Process started >>>
<<< Process finished. (Exit code 0)
================ READY ================

我期待一些错误消息。这是否意味着我使用 NppExec 错误? 谢谢

问题

这个命令:

$(NPP_DIRECTORY)\notepad++.exe -n $(FULL_CURRENT_PATH)

我不知道你认为它在做什么,但这就是它在做什么:

这将打开 Notepad++。不是 PHP 或任何东西,只是 Notepad++。但是,由于 Notepad++ 实例已经 运行,它只是退出。
我不知道这是否会在参数生效之前发生,但如果没有发生,那么 $(FULL_CURRENT_PATH) 将作为文件打开,Notepad++ 将跳转到其中的第 0 行,因为 -n选项,表示 "scroll to line X"。例如,由于您不提供 -n15,而只提供 -n,因此行号为零。

解决方案

我认为您的目标是验证 PHP 文件的语法。
为此,您需要在系统上安装 PHP 并在 %PATH% 中有 PHP bin 文件夹(或使用下面 php.exe 的完整路径)。
那么你要找的 NppExec 命令应该是:

php.exe -l $(FULL_CURRENT_PATH)

-l(小写 L)选项传递给 PHP 可执行文件将使它验证输入文件的语法。