gpt4 book ai didi

windows - 对目录中的所有文件批量执行操作 - 变量值错误?

转载 作者:可可西里 更新时间:2023-11-01 11:48:42 26 4
gpt4 key购买 nike

我正在尝试使用 swftools 将 SWF 文件夹转换为图像。实际转换工作正常,但是我在尝试让它对文件夹中的所有文件运行时遇到问题。 (最好让它也适用于所有子文件夹)。

假设该文件夹包含以下文件:1.swf、2.swf、...现在我为此编写的脚本是:

for %i in (*.swf) do (
set fileName=%i
swfrender "%fileName%" -o "%fileName:~0,-4%.png"
)

我从包含 SWF 文件的文件夹中运行。然而,我在命令提示符中看到的不是预期的结果:

set fileName=1.swf swfrender "3.swf" -o "3.png" )

set fileName=2.swf swfrender "3.swf" -o "3.png" )

现在我发现脚本应该没问题,所以我不知道哪里出了问题。

奇怪的是,以下内容似乎有效:

for /R %x in (*.swf) do swfrender %x -o %x.png

但我宁愿不必重命名几百个文件来从文件名中删除多余的 .swf 部分。

最佳答案

你需要delayed expansion (在批处理文件中,循环标记需要加倍 %):

setlocal enableDelayedExpansion
for %%i in (*.swf) do (
set fileName=%%i
swfrender "!fileName!" -o "!fileName:~0,-4!.png"
)

或者您可以提取不带扩展名的文件名:

for %%i in (*.swf) do (
swfrender "%%~i" -o "%%~ni.png"
)

关于windows - 对目录中的所有文件批量执行操作 - 变量值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36544671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com