網絡上有很多關於如何從Notepad Plus Plus(NPP)運行文件的例子。但是他們都未能說明當前的工作目錄是NPP可執行文件的位置,而不是文件的位置。
通常他們去是這樣的:從Notepad Plus Plus和當前目錄運行文件
cmd /K "$(FULL_CURRENT_PATH)"
考慮以下Python腳本:
with open('somefile.txt', 'a') as file:
file.write('Hello there.\n')
該文件將在覈電站的文件夾,這是根本不是多數人的期待被創建。大多數人會希望它與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>
所以你關閉核電站,加入這一行,使用其他編輯器編輯「shortcuts.xml」,然後啓動核電站。 要運行該文件,請使用Ctrl + F5組合鍵。
這適用於Windows 10,但在Windows XP中失敗。
我該如何調整它在Windows XP中的工作?
你的命令行的問題是'$(FULL_CURRENT_PATH)'沒有被引用。例如,如果它的值是''c:\ f \ xyz \ w.exe「',那麼沒有引號就會被解釋爲'」c:\ f \ x「」y「」z \ w.exe 「'。不過你說得對,使用'/ d'標誌可能是一個好主意。 – Cauterite
@Cauterite,No.CHDIR(即CD)是一個有趣的命令,它不同地解釋空間。命令「CD /?」的輸出包含*「CHDIR命令不會將空格視爲分隔符,因此可以將CD轉換爲包含空格的子目錄名稱,而不包含名稱帶引號」*「的空格。 – AdrianHHH
'$(FULL_CURRENT_PATH)'不用作'cd'的參數。 'cd'命令在'&&'結束,所以這個「不同的空間解釋」行爲不適用於'&&'之後的命令。 – Cauterite