В Интернете есть несколько примеров запуска файла из Notepad Plus Plus (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 для изменения тока рабочий каталог, как обычно, это не понадобится.
Я пытался решить эту проблему и придумал следующее. Эта строка находится в «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, № CHDIR (т. Е. CD) - забавная команда, она интерпретирует пространства по-разному. Выход из команды «CD /?» включает * Команда CHDIR не обрабатывает пробелы как разделители, поэтому CD можно записать в имя подкаталога, которое содержит пробел без окружающего имя с кавычками «*. – AdrianHHH
'$ (FULL_CURRENT_PATH)' не используется как параметр для 'cd'. Команда 'cd' заканчивается на' && ', поэтому это" интерпретирует пространства по-разному "поведение не применяется к команде после' && '. – Cauterite