标题: [文本处理] [已解决]批处理数值比较出错 [打印本页]
作者: jcy0307 时间: 2010-5-16 12:37 标题: [已解决]批处理数值比较出错
- @echo
- setlocal EnableDelayedExpansion
- color 0a
- set a=
- set/p a=请将文件拖入:
- for %%i in (%a%) do set /a c=%%~zi/1024
- echo 文件大小:%c%KB
- set b=
- set/p b=请设定分割后文件大小(KB):
- set /a e=%b%*1024
- set /a f=%c%/%b%
- echo %e%
- echo 以%b%KB分割后,您将得到%f%个文件。
- pause
- set d=1
- for %%i in (%a%) do set wjm=%%~ni
- for /f "delims=" %%j in (%a%) do (
- echo %%j>>%wjm%!d!.txt
- for %%k in (%wjm%!d!.txt) do if %%~zk GEQ %e% set /a d+=1
- )
- pause
复制代码
谢谢1楼的同志 根据1楼的提示 稍微改了下代码
问题已解决
[ 本帖最后由 jcy0307 于 2010-5-16 21:41 编辑 ]
作者: hanyeguxing 时间: 2010-5-16 13:03
if "%~zk" GEQ "81920" set /a d+=1改成if %~zk GEQ 81920 set /a d+=1
把引号都去掉,作运算比较时,不能用引号引起来!
如果使用引号,必须使被比较的两个数字位数相同,不同时在前面补齐0,然后执行字符比较
if 语法:如果 string1 和 string2 都由所有的数字组成,那么字符串将被转换为数字并且将执行数字比较。
也就是说,如果 string1 和 string2 中有了引号,那么将不执行数字比较,而是执行字符比较。
在字符比较中,1234567890是比81920小的。只有执行数字比较,1234567890才比81920大。
在字符比较中,9是比81920大的。只有执行数字比较,9才比81920小。
[ 本帖最后由 hanyeguxing 于 2010-5-16 13:30 编辑 ]
作者: hanyeguxing 时间: 2010-5-16 20:33
完成后请将标题前加 [已解决]
作者: jcy0307 时间: 2010-5-16 21:41
领导电脑坏了 催我赶紧过去 所以........
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |