windows “for /f“由于某种原因对我不起作用

n6lpvg4x  于 2023-02-10  发布在  Windows
关注(0)|答案(1)|浏览(131)
setlocal enabledelayedexpansion

for %%b in (*.wav) do (
  set duration=0
  for /f "tokens=3,5" %%a in ('ffprobe -i "%%b" -show_entries format^=duration -v quiet -of csv^=p^=0') do (
    echo 'asdf' >> test.txt
  )
)

由于某些原因,上面的代码不能正常运行。当我删除“/f”部分时,它可以正常工作,但使用“/f”部分时,它不能设置duration变量。我尝试在该循环中执行“echo 'asdf'〉〉test.txt”,但也不起作用,我在使用/f的循环中的“do”子句中输入的任何内容都不起作用。
有什么想法吗?我试着删除“for %%B in(*.wav)do(“循环,也没有效果。
这是ffprobe单独运行时的输出。

C:\Users\deama\Desktop\Empire\voiceacting_samples\gothic2\xardas>ffprobe -i OUTR
O_XARDAS_14_10.WAV -show_entries format=duration -v quiet -of csv=p=0
4.129546

C:\Users\deama\Desktop\Empire\voiceacting_samples\gothic2\xardas>

带有for循环的脚本位于名为“pop.bat”的同一目录中。

iklwldmw

iklwldmw1#

看起来令牌或其他东西出了问题,下面的工作:

for %%G in (*.wav) do (
  for /F "delims=" %%H in ('ffprobe.exe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 "%%G" 2^>^&1') do (
  echo %%H >> test.txt
  )
)

相关问题