NppExec - 将文件移动到另一个符合子文件夹结构的文件夹

时间:2017-01-21 12:41:15

标签: notepad++ nppexec

我使用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执行此操作?

1 个答案:

答案 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)

备注

  • NppExec文档解释了所有不同的set可能性,请查看
  • 动态推导路径的替代方案将是路径的静态定义:
    • 放置&#34;路径设置&#34;作为NppExec脚本中的ROOT,BIN,SRC等的静态路径
    • 将路径定义为您从NppExec脚本
    • 访问的环境变量
    • 一个完全不同的方法是存储多个$(FULL_CURRENT_PATH)并在以下之间做一些更改目录:
      1. 一个cd ..从src子目段跳转到src
      2. 到ROOT,
      3. to bin
      4. 然后进行字符串替换