我做错了什么
what I'm doing wrong
这是批次
for /f "skip=9 tokens=1-3" %%x in ('sox.exe Heavyrainambienc2801.wav -n stat') do (
if "%%x %%y"=="Maximum delta:" set maxDelta=%%z
)
echo %maxDelta%
我得到的不是最大增量值,而是空白回显
Samples read: 11832320
Length (seconds): 123.253333
Scaled by: 2147483647.0
Maximum amplitude: 0.999939
Minimum amplitude: -0.999969
Midline amplitude: -0.000015
Mean norm: 0.488960
Mean amplitude: -0.000082
RMS amplitude: 0.570900
Maximum delta: 1.999878
Minimum delta: 0.000000
Mean delta: 0.651948
RMS delta: 0.807396
Rough frequency: 10804
Volume adjustment: 1.000
Try: -t raw -e mu-law -b 8
C:>echo
ECHO is on.
我不确定这是否重要,但 运行 在 Windows 10
我不确定错误是什么,但有一个解决方法:
将您正在使用的命令的输出放在文本文档中并从那里读取。那对我有用。
我直接把这段文字复制到文件里测试了;如果还有其他问题,您可能需要检查 %%x 和 %%y 是否是所需的值。如果不是,您知道在哪里可以仔细查看 :)
在批处理脚本结束时,您可以直接删除文件。
@echo off
sox.exe Heavyrainambienc2801.wav -n stat 2>output.txt
for /f "skip=9 tokens=1-3" %%x in (output.txt) do (
if "%%x %%y"=="Maximum delta:" set maxDelta=%%z
)
echo %maxDelta%
del output.txt
pause
这是批次
for /f "skip=9 tokens=1-3" %%x in ('sox.exe Heavyrainambienc2801.wav -n stat') do (
if "%%x %%y"=="Maximum delta:" set maxDelta=%%z
)
echo %maxDelta%
我得到的不是最大增量值,而是空白回显
Samples read: 11832320
Length (seconds): 123.253333
Scaled by: 2147483647.0
Maximum amplitude: 0.999939
Minimum amplitude: -0.999969
Midline amplitude: -0.000015
Mean norm: 0.488960
Mean amplitude: -0.000082
RMS amplitude: 0.570900
Maximum delta: 1.999878
Minimum delta: 0.000000
Mean delta: 0.651948
RMS delta: 0.807396
Rough frequency: 10804
Volume adjustment: 1.000
Try: -t raw -e mu-law -b 8
C:>echo
ECHO is on.
我不确定这是否重要,但 运行 在 Windows 10
我不确定错误是什么,但有一个解决方法: 将您正在使用的命令的输出放在文本文档中并从那里读取。那对我有用。
我直接把这段文字复制到文件里测试了;如果还有其他问题,您可能需要检查 %%x 和 %%y 是否是所需的值。如果不是,您知道在哪里可以仔细查看 :)
在批处理脚本结束时,您可以直接删除文件。
@echo off
sox.exe Heavyrainambienc2801.wav -n stat 2>output.txt
for /f "skip=9 tokens=1-3" %%x in (output.txt) do (
if "%%x %%y"=="Maximum delta:" set maxDelta=%%z
)
echo %maxDelta%
del output.txt
pause