是否有办法使用Windows批处理文件检测给定文件夹中的图像序列并生成以printf样式表示法表示它的字符串?
例如:
一个目录包含300个名为S002_comp_v04.0000.exr
到S002_comp_v04.0299.exr
的文件,我需要一个像S002_comp_v04.%04d.exr
这样的字符串。
背景:
我想要一个批处理文件,我可以在其中删除任何文件夹并处理文件夹的内容,以便将其传递给ffmpeg进行编码。使用python很容易 - 但是如何仅使用Windows批处理文件实现这一目标? Windows版本为8.1和10。
答案 0 :(得分:0)
正如我在评论中所说,这个问题有几个缺失点,所以我补充说:
下面的批处理文件创建请求的字符串。
@echo off
setlocal EnableDelayedExpansion
rem Get the base name, the counter and the extension of first file
for /F "tokens=1-3 delims=." %%a in ('dir /B %1') do (
set "basename=%%a"
set "counter=%%b"
set "ext=%%c"
goto break
)
:break
rem Get the length of counter
for /L %%i in (1,1,9) do if "!counter:~%%i,1!" neq "" set /A len=%%i+1
echo %basename%.%%0%len%d.%ext%
示例:
C:\> dir theFolder /b
S002_comp_v04.0000.exr
S002_comp_v04.0299.exr
C:\> test.bat theFolder
S002_comp_v04.%04d.exr