前因:

看到了魔型志的一篇推文:https://mp.weixin.qq.com/s/EGoyP1Exjwqb8GU8ljzYOA

这里面介绍了一个鼠标右键在文件夹中创建多个工程文件夹的操作

我之前全部都是使用Qyicker实现的新建一个Maya的工程目录,觉得很方便

感兴趣的可以了解一下Qyicker

看到魔型志的这篇文章后我觉得挺方便,可以不用安装任何软件的情况下实现这一操作

其实以魔型志的教程里面已经写的很清楚了,但是我看评论还是觉得很麻烦,想要一键实现。

我正好也按照以上教程实现了一下,在这里记录一下

写一个批处理

魔型志的批处理代码:

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
mkdir "%~1\Bakes\Meshes"
mkdir "%~1\Bakes\ExportTex"
mkdir "%~1\Substance\Saves"
mkdir "%~1\Substance\Alpha"
mkdir "%~1\Substance\Textures"
mkdir "%~1\Zbrush\Saves"
mkdir "%~1\Zbrush\ImportMeshes"
mkdir "%~1\Screenshot"
mkdir "%~1\Maya"
mkdir "%~1\References"
mkdir "%~1\MarvelousDesigner"

简单解析一下这个批处理

@echo off:关闭命令回显,执行命令时不会显示命令本身,只显示输出结果。

使用 mkdir(Make Directory)命令创建一个新目录。

  • %~1:表示批处理文件运行时传递的第一个参数的路径。例如,如果运行命令 script.bat C:\Project%~1 就是 C:\Project
  • "%~1\Bakes\Meshes":在 %~1 参数指定的路径下,创建 Bakes\Meshes 文件夹。

mkdir命令可以直接缩写为md

其实这段代码很简单,就是要创建指定的文件夹,二级文件夹就加一个\

我使用的Maya精简工程目录的批处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@echo off
md data
md images
md scenes
md sourceimages

more +9 %0 >> workspace.mel
exit /b

//Maya 2022 Project Definition

workspace -fr "fluidCache" "cache/nCache/fluid";
workspace -fr "images" "images";
workspace -fr "offlineEdit" "scenes/edits";
workspace -fr "furShadowMap" "renderData/fur/furShadowMap";
workspace -fr "iprImages" "renderData/iprImages";
workspace -fr "renderData" "renderData";
workspace -fr "scripts" "scripts";
workspace -fr "fileCache" "cache/nCache";
workspace -fr "eps" "data";
workspace -fr "shaders" "renderData/shaders";
workspace -fr "3dPaintTextures" "sourceimages/3dPaintTextures";
workspace -fr "translatorData" "data";
workspace -fr "mel" "scripts";
workspace -fr "furFiles" "renderData/fur/furFiles";
workspace -fr "OBJ" "data";
workspace -fr "particles" "cache/particles";
workspace -fr "scene" "scenes";
workspace -fr "furEqualMap" "renderData/fur/furEqualMap";
workspace -fr "sourceImages" "sourceimages";
workspace -fr "furImages" "renderData/fur/furImages";
workspace -fr "clips" "clips";
workspace -fr "depth" "renderData/depth";
workspace -fr "sceneAssembly" "sceneAssembly";
workspace -fr "teClipExports" "Time Editor/Clip Exports";
workspace -fr "movie" "movies";
workspace -fr "audio" "sound";
workspace -fr "bifrostCache" "cache/bifrost";
workspace -fr "autoSave" "autosave";
workspace -fr "mayaAscii" "scenes";
workspace -fr "move" "data";
workspace -fr "sound" "sound";
workspace -fr "diskCache" "data";
workspace -fr "illustrator" "data";
workspace -fr "mayaBinary" "scenes";
workspace -fr "templates" "assets";
workspace -fr "furAttrMap" "renderData/fur/furAttrMap";
workspace -fr "timeEditor" "Time Editor";

more +9 %0 >> workspace.mel

  • more:Windows 中的命令,用于分页显示文本文件的内容。
  • +9:表示从第10行开始显示(跳过前9行,从第10行开始)。其实意识就是把第九行以下的内容存入workspace.mel文件
  • %0:表示当前批处理文件的自身路径。
  • >> workspace.mel:将输出内容追加到 workspace.mel 文件中(而不是覆盖)。

整体意思:从当前批处理文件的第10行开始,将其内容追加到 workspace.mel 文件中。

exit /b

  • exit /b:结束当前批处理脚本的执行,并返回到调用者(如果在子批处理脚本中调用),不会关闭命令行窗口。

以上就是我日常使用的一个批处理

运行效果如图:

image-20241110193443035

其实就是精简了一下maya自己创建的工程目录,留下了几个常用的目录,你可以根据我上面的解释修改属于你自己的批处理!


结果

下载地址:蓝奏云

以上内容就是教你如何创建属于自己的批处理文件

我上面提供的下载地址的压缩包中包含三个文件,一个是我上面的批处理文件CreateProject.bat,你可以直接修改这个文件以实现自己创建的指定文件夹的批处理

然后压缩包还包含两个.reg文件,下面我解析一下这两个文件

首先

你要是希望直接双击添加的话还有一个前提条件,就是将CreateProject.bat存放在:E:\Bat\CreateProject.bat

将值添加到注册表.reg:双击这个文件可以在空白文件夹右键添加一个名称为“创建工程目录”的选项,点击这个选项也就可以执行上面的批处理文件,实现创建文件夹

删除添加的注册内容.reg:有了上面一键添加我又写了一个一键删除,来完成删除上面添加的右键。双击这个,删除上面添加的“创建工程目录”选项


.reg文件就是注册表文件,可以直接使用记事本打开编辑

但是有一点得注意,编辑的时候要是有中文一定到选择ANSI!要是UTF-8双击后鼠标右键的中文字符会乱码!

image-20241110195251036


将值添加到注册表.reg代码内容:

1
2
3
4
5
6
7
8
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\createproject]
@="创建工程目录(&C)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\createproject\command]
@="cmd.exe /c E:\\Bat\\CreateProject.bat %V"

解析:

第一句声明,忽略

第二部分就一个属性,决定你鼠标右键那个选项的名称,我的是“创建工程目录”

第三部分就是你这个批处理文件存放的位置,你可以修改为你自己的批处理存放位置,记得使用双斜杠\\

如下图

image-20241110194828818

删除添加的注册内容.reg代码内容:

1
2
3
Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\Directory\Background\shell\createproject]

解析:

这个就没啥可说的了,就是把上面添加的东西从注册表中删除