如何在 Windows CMD 中的单行命令之间插入注释?

How to insert comments between single line commands in Windows CMD?

我是 3D 软件 Blender 的用户。
我正在尝试在 CMD 中 运行 因为 Blender 提供了 CLI 控制。
下面的代码工作正常。

blender -b "my.blend" ^
--python-text "lowResoltion" ^
-S "scene 01" ^
-o "// output \ ##" -F PNG -f 3 ^
-S "scene 02" ^
-o "// output \ ##" -F PNG -f 5

不过我想暂时把第二行的lowResolution注释掉
然而,上面的代码看起来像几行,但由于 ^,它是一行,所以当我使用 rem:: 时,它似乎被视为告诉 Blender for rem / :: 而不是告诉 CMD。
CMD 可以理解 rem:: 的母语,但对 Blender 来说听起来像是一门外语。

有没有办法在这种情况下注释掉第二行?


Squashman 带来的 link 中的问题与我的问题相似。
然而,这个link的解决方案,%= =%注释方法,似乎仍然传递给Blender而不是CMD。
我想也许批处理文件的语法不能解决这个问题。
当我用 %= =% 包裹第二行时,搅拌机打印 ????? 并退出,如下图所示。


jeb 的方法行得通!
拍了一张GIF作为纪念
注意两个图像的分辨率如何随着一行代码替换而改变。
由于 jeb 的解决方案,我现在可以轻松地测试我的代码,使用数十个 blend 文件批量渲染数千张图像。

在命令行上不起作用,因为在命令行上未定义的变量不会展开为空,而是保持不变。

但是您可以使用很少使用的百分比修饰符语法 %~$ANY_PATH_VARIABLE:I

这会在 ANY_PATH_VARIABLE 中列出的所有路径中搜索存储在 FOR 变量 I 中的文件。
听起来很奇怪,但你的情况很简单

FOR %# in (dummy) DO @blender -b "my.blend" ^
%~$==--python-text "lowResoltion":# ^
-S "scene 01" ^
-o "// output \ ##" -F PNG -f 3 ^
-S "scene 02" ^
-o "// output \ ##" -F PNG -f 5 ^
%~$==SECOND-comment, the double colon is forbidden:# ^
%~$==THIRD-comment, but percent % is okay:#

评论以%~$==开始,以:#结束。

这会在 ==--python-text...==SECOND-comment, the ... 等变量中搜索 for-variable %#
这些变量不能存在,因为它们以等号开头。
因此扩展的结果总是空的,因为dummy不能是未定义变量的任何目录中的文件。

只有一个小问题,如果您仍在 windows XP 中尝试使用它,则变量名不能包含分隔符(space、逗号、等号)。