Originally posted by slore at 2010-6-30 09:20: ... -158.92>-178.48看不懂,我的意思最好可以输出文件,比对部分可以用参数比较。 关键是提取变量有问题,但是数据文件中两列数据前后都有空格,每次使用“delims= ”提取就是不对。 最早尝试 for /f "skip=7 delims= " %%a in (freq.txt) do ( echo %%a %%b) 结果却是这样的 0.0000 -164.82 %b 0.66667E-01 -192.55 %b 0.13333 -190.88 %b 0.20000 -188.73 %b 0.26667 -186.26 %b [ Last edited by faxa1 on 2010-6-30 at 23:41 ]
Originally posted by slore at 2010-7-1 18:17: 我的意思你到底要小的还是大的? -3是大于-5,如果你要小于的,为什么把-3输出出来? 你这个case不难。for循环 多设置2个临时变量保存前2次的结 ...可能是我没有表述得很清楚。 7 0.46667 -158.92 14 0.93333 -159.31 .... 这个是我打算输出的结果样,其中比较的是第二列,找到最“最大”的(不好意思摆了大乌龙,把负号搞忘了,思想就是找到峰值的行),并输出该行,并在前面加个行号。我做的时候问题出现在开始提取某一行的数据,每次都是只有%%a可以得到该行全部数据而%%b没有数据,就是这里有问题 还请slore多指教哈,谢谢
@echo off&setlocal EnableDelayedExpansion
Set n=0
for /f "tokens=3,4 delims=. " %%i in (T.txt) do (
Set testData_!n!=%%i%%j
Set /a n+=1
)
Set /a n-=1
for /l %%j in (1,1,%n%) do (
Set /a i = %%j - 1
Set /a k = %%j + 1
call :MAXIN3 %%testData_!i!%% !testData_%%j! %%testData_!k!%% %%j
)
pause
:MAXIN3
if %2 GEQ %1 (
if %2 GEQ %3 (
Set /a OutNum=%2
echo !OutNum:~0,-2!.!OutNum:~-2,2! @ Line:%4
)
)
Originally posted by slore at 2010-7-2 13:29: 本来可以很简单。。。但是。。。bat不支持浮点数。。。搞得麻烦了点,其实逻辑很简单。 [code] @echo off&setlocal EnableDelayedExpansion Set n=0 for /f &q ...非常感谢slore的解答,谢谢,学到很多,竟然还需要变量延迟以前更本不知道,set的用法还是没搞清除啊 再次谢谢 ps:数据是其他计算随机生成的,只是这里刚好是没七个有一个最大值 [ Last edited by faxa1 on 2010-7-3 at 00:21 ]