从记事本Plus Plus和当前目录运行文件



网上有很多关于如何从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文件夹的"shortcut .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,编辑"shortcut .xml"通过添加这一行,使用另一个编辑器,然后启动NPP。使用Ctrl+F5组合键运行文件。

此操作在Windows 10中有效,但在Windows XP中失败。

我怎样才能使它在Windows XP中工作?

试试这个:

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

我猜问题是命令中不正确嵌套的引号;我不确定为什么它能在后来的Windows上工作,而在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;

我从notepad++运行了几个Windows .bat文件。要实现这一点,文件C:UsersAdrianHHHAppDataRoamingNotepad++shortcuts.xml<UserDefinedCommands>部分中的一个条目是:

<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>

.bat作为当前文件,然后使用menu => Run => CD和Run file

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

我使用的命令启动cmd C ...(而不是问题中的K),因此命令窗口自动关闭。我的.bat文件通常以choice /t 60 /C Y /d Y /n结尾,所以我可以看到命令的输出。

notepad++> F5 (Run)>然后键入以下命令

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

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

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

最新更新