Loops 如何在特定范围内创建FOR循环调用.exe?
我正试图编写一个批处理脚本,用exe文件处理一堆文件。 到目前为止,我定义了变量,得到了一个帧编号,但我需要循环整个序列,例如帧1-100,而不必生成100行实体,每个实体都有自己的帧编号 现在看起来是这样的,显然只是一遍又一遍地重复同一帧,但它确实在等待,然后继续下一个好的项目。我只是错过了FOR循环,我相信是的,但不确定如何实现它 设置帧=应该是1-100的范围 我知道关于/l%%G IN()的事情……但我真的看不出如何整合它Loops 如何在特定范围内创建FOR循环调用.exe?,loops,batch-file,cmd,Loops,Batch File,Cmd,我正试图编写一个批处理脚本,用exe文件处理一堆文件。 到目前为止,我定义了变量,得到了一个帧编号,但我需要循环整个序列,例如帧1-100,而不必生成100行实体,每个实体都有自己的帧编号 现在看起来是这样的,显然只是一遍又一遍地重复同一帧,但它确实在等待,然后继续下一个好的项目。我只是错过了FOR循环,我相信是的,但不确定如何实现它 设置帧=应该是1-100的范围 我知道关于/l%%G IN()的事情……但我真的看不出如何整合它 @echo off SET noice=C:\ProgramDa
@echo off
SET noice=C:\ProgramData\Autodesk\ApplicationPlugins\MAXtoA\noice.exe
SET Path=C:\go\
SET Name=go
SET frame=0003
start /WAIT %noice% -i %Path%%Name%_AOVs%frame%.exr -o
%Path%%Name%_Denoised%frame%.exr
试试这个
@echo off
setlocal enabledelayedexpansion
SET "noice=C:\ProgramData\Autodesk\ApplicationPlugins\MAXtoA\noice.exe"
SET "MPath=C:\go\"
SET "MName=go"
for /l %%i in (1,1,100) do (
set "frame=%%i"
if !frame! GEQ 100 set "lframe=0!frame!"
if !frame! LEQ 99 set "lframe=00!frame!"
if !frame! LEQ 9 set "lframe=000!frame!"
echo start "" /WAIT %noice% -i %MPath%%MName%_AOVs!lframe!.exr -o %MPath%%MName%_Denoised!lframe!.exr
)
所以您只想在循环中运行100次
start/WAIT/%noice%..
?嗨,Gerhard,实际上,我将100.exr帧渲染到磁盘。所有的一切都被称为。。。“go_AOVs0000.exr->go_AOVs0100.exr。到目前为止,该脚本正确地处理单个操作,完成它的工作并输出相同的名称和帧号,但添加了_去噪的加法,因此go_AOVs_0000.exr成为go_AOVs_去噪D0000.exr。请注意,我在该领域非常新手。您所写的内容很有意义,是的,我想将exe运行100次。”ng frame 0045做它自己的事情,并吐出去噪的_0045作为示例,然后继续0046等。类似于(1,1100)中/l%%i的do set“frame=%%i“
?好的,我要尝试一个答案,请先测试一下。让我先发布答案。稍等,这将设置帧1
。100
和非0001
到0100
好的,现在来看一下,可能是因为帧是1-100而不是0001-0100@Benny请运行已编辑的脚本,它应该只回显结果,而不是实际的命令,确保它给出了想要的结果,然后我们将转到另一个问题,如果仍然存在的话。@benny Ok,太棒了。谢谢,我会使用10000的偏移量,只保留最后4位数字。那就不需要假设了。