网上有很多关于如何从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 "$(FULL_CURRENT_PATH)"</Command>
我不想在Python脚本中添加额外的代码来更改当前的工作目录,因为通常不需要这样做。
我一直试图解决这个问题并提出以下建议。该行位于NPP文件夹中的“ shortcuts.xml ”。
<Command name="Run This File" Ctrl="yes" Alt="no" Shift="no" Key="116">cmd /K "cd "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)""</Command>
因此,关闭NPP,通过添加此行,使用其他编辑器编辑“ shortcuts.xml ”,然后启动NPP。 要运行该文件,请使用 Ctrl + F5 组合键。
这适用于Windows 10,但在Windows XP中失败。
如何调整它以在Windows XP中运行?
答案 0 :(得分:1)
尝试一下:
cmd /k cd /d $(CURRENT_DIRECTORY) && python $(FULL_CURRENT_PATH)
答案 1 :(得分:0)
我的猜测是问题是命令中嵌套引号不正确;我不确定为什么它可以在以后的Windows&#39;而在XP上失败。
命令
cmd /K "cd "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)""
代表
cmd /K "cd "$(CURRENT_DIRECTORY)" && "$(FULL_CURRENT_PATH)""
即使从语法高亮显示,您也可以看到引号没有引用您的预期。
要获得所需效果,您可以使用以下命令:
cmd /K cd "$(CURRENT_DIRECTORY)" ^&^& "$(FULL_CURRENT_PATH)"
:: XML-ified:
cmd /K cd "$(CURRENT_DIRECTORY)" ^&^& "$(FULL_CURRENT_PATH)"
答案 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 "cd /d $(CURRENT_DIRECTORY) && $(FULL_CURRENT_PATH)"</Command>
作为当前文件,然后使用menu =&gt; 运行 =&gt; CD并运行文件。
问题中显示的命令行似乎有太多.bat
个符号。当前目录包含驱动器说明符,因此"
需要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;修改快捷方式/删除命令。