我有这个代码。它加载一系列.vrscene文件
for /f %%a IN ('dir /b /s "C:\Users\Beqarion\Desktop\test_for_batch*.vrscene"') do call "C:\Program Files\Autodesk\Maya2015\vray\bin\vray.exe" -scenefile=%%a -imgFile="C:\Users\Beqarion\Desktop\test_for_batch\img.jpg" -frames=1 -autoclose=1
正如你在最后看到的那样,它有一个img输出和帧号。我需要创建一个变量,每次呈现.vrscene
文件时它都会递增,并将其添加到img.jpg
,以便在每次渲染后保存一个新的img文件:img_0001
,{{1等我试过img_0002
但它不起作用。另外我想补充一点,我不是程序员,也不是批处理代码。所以这里的一些人认为非常基本的东西可能不适合我。
答案 0 :(得分:2)
@Echo off&SetLocal EnableDelayedExpansion
Set "Basefldr=C:\Users\Beqarion\Desktop"
Set "vray=C:\Program Files\Autodesk\Maya2015\vray\bin\vray.exe"
Pushd "%Basefldr%"||(Echo can't cd to %Basefldr% &Pause &Exit /B 1)
Set ImgNo=10000
for /f "delims=" %%a IN (
'dir /b /s "test_for_batch*.vrscene"'
) do (Set /A ImgNo+=1
"%vray%" ^
-scenefile=%%a ^
-imgFile=".\test_for_batch\img_!ImgNo:~-4!.jpg" ^
-frames=1 ^
-autoclose=1
)
PopD
初始ImgNo=10000
是获得前导零的必要条件
使用!ImgNo:~-4!
剥离最后四个位置时
将EnableDelayedExpansion与!
组合使用
通常%
需要获取区域中的实际值
被括号括起来。