Я столкнулся с проблемой компиляции для условия IF, в то время как другой скрипт в том же месте использует то же самое условие работает нормально. Другой скрипт также проверяет, присутствует ли папка Release в коде, или нет, это не приведет к некоторой операции. Любая идея, почему тот же самый ИФ терпит неудачу, поскольку я звоню из того же места?) {if был неожиданным в это время
@echo OFF
cd ..
cd debug/bin/8209
if not exist Release (
set val2 ""
echo %val2%
echo start the script
readelf qcdsp28909.mbn -l | awk '{if (match($6,/0x/)){if ($1 == "LOAD") print strtonum($6)}}'| awk '{ sum+=$1} END {print sum/1024/1024}' > value.txt 2>&1
set /p size=<value.txt
echo %size%
for /f "tokens=1,2 delims=." %%a in ("%size%") do (
set first_part=%%a
set second_part=%%b
)
set second_part=%second_part:~0,1%
echo %second_part%
if defined second_part if %second_part% GEQ 5 (
set /a rounded=%first_part%+1
) else (
set /a rounded=%first_part%
)
echo %rounded%
set /a rounded= "%rounded% * 1024 * 1024"
echo %rounded%
call cmd /c exit /b %rounded%
set hex=%=exitcode%
set val2=%hex%
setx val2 %hex% /m
echo %val2%
)
Я уже пытался это изменить, но положить «» не дает мне желаемого результата. Он возвращает значение 0 в качестве вывода. –
Извините, я очень мало знаю о синтаксисе 'awk'. Может быть, ваша переменная 'sum' передается как строка или целое число, когда оно должно быть float? Возможно, вам повезло с просьбой пометить новый вопрос как 'awk'. Вы также можете попытаться поместить свои аргументы awk в файл '.awk' и попробовать' awk -f 'scriptfile.awk '', чтобы исключить возможность проблемы, характерной для командной строки. Кстати, что такое 'strtonum'? В вашем втором awk-заявлении нет способа узнать, что вывод первого 'awk' прошел через' strtonum'. – rojo