2016-08-26 2 views
0

это партиято, что я делаю неправильно

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:\1>echo 
ECHO is on. 

Я не уверен, что это важно, но это запустить в Windows 10

+0

ваш код в порядке. Это [в рамках другого блока кода] (http://stackoverflow.com/a/30284028/2152082)? – Stephan

+1

ПОЖАЛУЙСТА, ПРЕДОСТАВЛЯЙТЕ КОНКРЕТНЫЙ вопрос TITLE !! Как выводится формат 'sox.exe' - ANSI/Unicode? – aschipfl

+0

нет, это отдельный код, я не знаю о форматировании sox.exe –

ответ

0

Я не уверен, что это за ошибка, но есть обходное решение: Поместите вывод команды, которую вы используете в текстовом документе, и прочитайте ее оттуда. Это сработало для меня.

Я непосредственно скопировал блок текста в файл, чтобы проверить его; если есть что-то еще, вы можете проверить, являются ли значения %% 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 
+0

Он тоже не работает. Файл output.txt пуст :( –

+0

Увы, возможно, там было пробел перед '> output.txt' Это внесло изменения с моей тестовой командой ... – geisterfurz007

+2

Возможно также, что вам нужно вместо этого используйте '2> output.txt', некоторые программы выводятся в STDERR вместо STDOUT. – SomethingDark

Смежные вопросы