gpt4 book ai didi

arrays - 如何使用变量作为索引计算 FOR 循环中的数组?

转载 作者:行者123 更新时间:2023-12-04 23:14:43 25 4
gpt4 key购买 nike

好的。我摆脱了大部分无用的代码,并一直在修补它,试图找出问题所在,我想我终于找到了:

如果变量位于 FOR 内,Windows 的批处理无法编辑将被扩展的变量。环形。

前任:

set /a x=1
Powershell Get-Clipboard> %temp%\ffmpeglist.txt
setlocal enableExtensions enableDelayedExpansion
for /F "delims=| tokens=*" %%A in (%temp%\ffmpeglist.txt) do (
set input[!x!]=%%A
call echo !input[%x%]!
set /a x += 1
)
endlocal

预期行为:
g:\videos\youtube1.mp4
g:\videos\youtube2.mp4
g:\videos\youtube3.mp4
g:\videos\youtube4.mp4
g:\videos\youtube5.mp4

我得到什么:
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4

不管我做什么, set /a x+= 1不会改变 x 的值.

有解决方案吗?我对任何事情都持开放态度。

最佳答案

编辑

在您大量更改的批处理中(实际上是一个新问题)更改

 call echo !input[%x%]!


 call echo %%input[!x!]%%

如果在(代码块)中,您可能需要延迟扩展以强制使用实际值,
如果同时使用索引变量,您需要另一个级别的延迟扩展,您可以使用伪调用和双百分号来完成
Call set Input=%%input[!x!]%%
mediainfo --Output=Video;%%Height%% !input! > %temp%\ffmpegres%x%.txt

关于arrays - 如何使用变量作为索引计算 FOR 循环中的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50184403/

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