如何在 Maya MEL 中获取拖放文件的路径

How to get the path of a drag & dropped file in Maya's MEL

将 Maya MEL 文件拖放到 Maya 中,MEL 文件的内容将被执行。 有没有办法在拖放时获取文件的绝对路径?

希望这可以帮助您入门

test.mel:

global proc FindMe() {}

print("whatIs result -> " + `whatIs "FindMe"`);

将文件拖放到 Maya 中会产生以下输出:

> source "C:/Users/itypewithmyhands/Desktop/test.mel";
> whatIs result -> Mel procedure found in: C:/Users/itypewithmyhands/Desktop/test.mel

有趣的注意事项:

  1. 拖放似乎只是产生一个 source <file> 语句,这意味着您必须执行一些我不知道的内部魔法才能知道文件是否真的被删除,或者只是来源
  2. 您搜索的proc必须标记为global

您需要对 whatIs 命令的结果进行正则表达式(或类似的)以获取您之后的路径。 .*found in: (.+?\.mel) 之类的东西似乎工作得很好。 Example