从Notepad Plus Plus和当前目录运行文件

时间:2016-08-28 15:38:12

标签: shell notepad++ windows-xp launching-application working-directory

网上有很多关于如何从Notepad Plus Plus(NPP)运行文件的例子。但它们都没有说明当前工作目录是NPP可执行文件的位置,而不是文件的位置。
通常他们会这样:

cmd /K "$(FULL_CURRENT_PATH)" 

考虑以下Python脚本:

with open('somefile.txt', 'a') as file:
    file.write('Hello there.\n')

此文件将在NPP文件夹中创建,这与大多数人所期望的完全不同。大多数人都希望它与Python文件位于同一位置。

您也可以执行类似的操作,并且按预期工作,但这仅限于Python文件:

<Command name="Run This Python File" Ctrl="no" Alt="no" Shift="yes" Key="116">cmd /K python &quot;$(FULL_CURRENT_PATH)&quot;</Command>

我不想在Python脚本中添加额外的代码来更改当前的工作目录,因为通常不需要这样做。

我一直试图解决这个问题并提出以下建议。该行位于NPP文件夹中的“ shortcuts.xml ”。

<Command name="Run This File" Ctrl="yes" Alt="no" Shift="no" Key="116">cmd /K &quot;cd &quot;$(CURRENT_DIRECTORY)&quot; &amp;&amp; &quot;$(FULL_CURRENT_PATH)&quot;&quot;</Command>

因此,关闭NPP,通过添加此行,使用其他编辑器编辑“ shortcuts.xml ”,然后启动NPP。 要运行该文件,请使用 Ctrl + F5 组合键。

这适用于Windows 10,但在Windows XP中失败。

如何调整它以在Windows XP中运行?

4 个答案:

答案 0 :(得分:1)

尝试一下:

cmd /k cd /d $(CURRENT_DIRECTORY) && python $(FULL_CURRENT_PATH)

答案 1 :(得分:0)

我的猜测是问题是命令中嵌套引号不正确;我不确定为什么它可以在以后的Windows&#39;而在XP上失败。

命令

cmd /K &quot;cd &quot;$(CURRENT_DIRECTORY)&quot; &amp;&amp; &quot;$(FULL_CURRENT_PATH)&quot;&quot;

代表

cmd /K "cd "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)""

即使从语法高亮显示,您也可以看到引号没有引用您的预期。

要获得所需效果,您可以使用以下命令:

cmd /K cd "$(CURRENT_DIRECTORY)" ^&^& "$(FULL_CURRENT_PATH)"
:: XML-ified:
cmd /K cd &quot;$(CURRENT_DIRECTORY)&quot; ^&amp;^&amp; &quot;$(FULL_CURRENT_PATH)&quot;

答案 2 :(得分:0)

我从Notepad ++运行了几个Windows .bat文件。要实现此目的,文件<UserDefinedCommands>的{​​{1}}部分中的一个条目是:

C:\Users\AdrianHHH\AppData\Roaming\Notepad++\shortcuts.xml

<Command name="CD and run file" Ctrl="no" Alt="no" Shift="no" Key="0">cmd /C &quot;cd /d $(CURRENT_DIRECTORY) &amp;&amp; $(FULL_CURRENT_PATH)&quot;</Command> 作为当前文件,然后使用menu =&gt; 运行 =&gt; CD并运行文件

问题中显示的命令行似乎有太多.bat个符号。当前目录包含驱动器说明符,因此&quot;需要CD选项。

我使用的命令启动\D(而不是问题中的cmd \C ...),因此命令窗口会自动关闭。我的\K文件通常以.bat结束,因此我可以看到命令的输出。

答案 3 :(得分:0)

Notepad ++&gt; F5(运行)&gt;然后输入以下命令

cmd /K cd "$(CURRENT_DIRECTORY)" && python "$(FULL_CURRENT_PATH)" 

假设您已经设置了路径,或者您可以使用C:\ Python27 \ python.exe或python二进制文件的路径,并且您将在python所在的文件夹中运行python。您也可以保存此单击按钮Save...命令快捷方式。

之后,您还可以修改工具栏中的命令&gt;运行&gt;修改快捷方式/删除命令。