如何在 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、逗号、等号)。
我是 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、逗号、等号)。