批量生成变量以进行渲染

时间:2016-10-19 12:29:59

标签: batch-file batch-processing batch-rename

我有这个代码。它加载一系列.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但它不起作用。另外我想补充一点,我不是程序员,也不是批处理代码。所以这里的一些人认为非常基本的东西可能不适合我。

1 个答案:

答案 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与!组合使用 通常%需要获取区域中的实际值 被括号括起来。