我有这个代码。它加载一系列.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
,img_0002
等。我尝试了set /a varname+=1
但它不起作用。另外我想补充一点,我不是程序员,也不是批处理代码。所以这里的一些人认为非常基本的东西可能不适合我。
@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结合!
而不是通常的%
来获取括号括起来的区域中的实际值。