我希望能够在我的闪存驱动器上编译并运行来自 Notepad ++ 的 C 和 C ++ 代码(使用 PortableApps。 COM )。我得到 MinGW 并将其放在我的闪存驱动器上,我调整了This Guy's 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 ================
答案 0 :(得分:3)
您可以尝试批处理set
命令将驱动器号放入环境变量中,然后在NppExec脚本中使用该变量。要设置环境变量,请尝试以下方法:
set TheDriveLetter=%CD:~0,2%
要在脚本中使用它:
cd $(SYS.TheDriveLetter)\MinGW\bin\
NppExec documentation中的变量部分提供了更多信息。
Notepad ++本身可能有一些环境变量可以更轻松地提供驱动器。您可以尝试here获取它们的列表。