我使用Notepad ++来编写我的SA:MP服务器系统,但是我在尝试整理文件夹时遇到了问题:我想把我编译的文件(.amx - 就像非特灵的结果.exe一样devs)在名为bin
的单独文件夹中,具有与sources文件夹(src
)相同的子文件夹结构。
为了澄清,所需的文件夹结构是:
Root folder
├── src
│ ├── filterscripts
│ │ ├── file1.pwn
│ │ └── file2.pwn
│ └── gamemodes
│ └── gm_main.pwn
├── bin
│ ├── filterscripts
│ │ ├── file1.amx
│ │ └── file2.amx
│ └── gamemodes
│ └── gm_main.amx
我想要的是当我编译.pwn文件时,生成的.amx应该转到等效的原始子文件夹,但是在bin
中。
我当前的执行脚本是:
NPP_SAVE
cd $(CURRENT_DIRECTORY)
"C:\Pawn\bin\samp\pawncc.exe" "$(FILE_NAME)" -; -(
是否可以仅使用NppExec执行此操作?
答案 0 :(得分:0)
您可以使用此NppExec脚本来派生所需的路径并将它们提供给编译器的某些参数:
NPP_SAVE
echo Sourcefile : $(FULL_CURRENT_PATH)
// ---------------------------------------------------------------------------------
// -- use string function to get ROOT and SRC path and then BIN path:
// set <var> ~ strrfind <s> <t> - returns the LAST position of <t> in <s>
set Pos_Root ~ strrfind $(FULL_CURRENT_PATH) \src\
// set <var> ~ <math expression> - calculates the math expression
set Pos_Src ~ $(Pos_Root) + 4
// echo $(Pos_Src), $(Pos_Root)
// returns the substring
set Dir_Root ~ substr 0 $(Pos_Root) $(FULL_CURRENT_PATH)
set Dir_Src ~ substr 0 $(Pos_Src) $(FULL_CURRENT_PATH)
echo Src-Directory : $(Dir_Src)
echo Project-Directory : $(Dir_Root)
set Dir_Bin = $(Dir_Root)\bin
echo Bin-Directory : $(Dir_bin)
// -- Now use the previously determined substring to get the BIN path and then
// -- derive the Target path with src replace by bin
// get the target dir:
// set <var> ~ strreplace <s> <t0> <t1> - replaces all <t0> with <t1>
set TARGET_PATH ~ strreplace $(CURRENT_DIRECTORY) $(Dir_Src) $(Dir_Bin)
echo Target-Directory : $(TARGET_PATH)
// ----------------------------------
// use compile with $(FULL_CURRENT_PATH) and $(TARGET_PATH)
"C:\Pawn\bin\samp\pawncc.exe" $(FULL_CURRENT_PATH) whatever-output-option $(TARGET_PATH)
备注强>
set
可能性,请查看$(FULL_CURRENT_PATH)
并在以下之间做一些更改目录: