1

我希望能够在我的闪存驱动器上从Notepad++编译和运行CC++代码(使用PortableApps.com)。我得到了MinGW并将它放在我的闪存驱动器上,我调整了This Guy 的NppExec脚本以使用闪存驱动器,它可以完美地工作,除非我并不总是知道我的闪存驱动器将获得什么驱动器号。

当我通过它%CD:~0,2%时,它将它作为字符串而不是命令。所以命令:

cd %CD:~0,2%\MinGW\bin\

尝试完全按照书面说明。它不会尝试将 转换%CD:~0,2%为驱动器号。因此,如果有人可以帮助我找出一种更好地获取驱动器号的方法,那就太好了。

此外,我不只是添加MinGW\bin\到系统变量的原因是因为我学校的计算机有安全软件会阻止我这样做。而且我仍然需要驱动器号。

关于我的问题的原因,我的假设是NppExec不知道如何处理这些%标志。因此,如果有人知道解决此问题的方法...?

这是完整的代码:

npp_save
cd %CD:~0,2%\MinGW\bin\
g++ "$(FULL_CURRENT_PATH)" -o $(NAME_PART) -march=native -O2
cmd /c move /Y $(NAME_PART).exe $(CURRENT_DIRECTORY)\$(NAME_PART).exe
NPP_RUN $(CURRENT_DIRECTORY)\$(NAME_PART).exe

输出显示NppExec清楚地忽略了我的更改目录命令。这是输出:

NPP_SAVE: G:\Documents\ColumbiaCollege\C++CmpSc27\Assigns\Assign02-PRSA\JesseM_Assign02_RPS_Game.c
CD: %CD:~0,2%\MinGW\bin\
Current directory: G:\Documents\ColumbiaCollege\C++CmpSc27\Assigns\Assign02-PRSA
g++ "G:\Documents\ColumbiaCollege\C++CmpSc27\Assigns\Assign02-PRSA\JesseM_Assign02_RPS_Game.c" -o JesseM_Assign02_RPS_Game -march=native -O2
CreateProcess() failed with error code 2:
The system cannot find the file specified.

cmd /c move /Y JesseM_Assign02_RPS_Game.exe G:\Documents\ColumbiaCollege\C++CmpSc27\Assigns\Assign02-PRSA\JesseM_Assign02_RPS_Game.exe
Process started >>>
The system cannot find the file specified.
<<< Process finished. (Exit code 1)
NPP_RUN: G:\Documents\ColumbiaCollege\C++CmpSc27\Assigns\Assign02-PRSA\JesseM_Assign02_RPS_Game.exe
- the specified file was not found
================ READY ================
4

1 回答 1

3

您可以尝试使用批处理set命令将驱动器号放入环境变量中,然后在 NppExec 脚本中使用该变量。要设置环境变量,请尝试以下操作:

set TheDriveLetter=%CD:~0,2%

要在脚本中使用它,请使用:

cd $(SYS.TheDriveLetter)\MinGW\bin\

NppExec 文档中有关变量的部分有更多信息。

Notepad++ 本身可能有一些环境变量,可以更轻松地提供驱动器。您可以在此处尝试获取它们的列表。

于 2014-01-26T12:29:21.957 回答