![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 13:32 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 我发现CMD里的每行字符限制数 |
| 可打印版本 3,147 / 9 |
| 第1楼 不得不爱 | 发表于 2006-10-17 21:30 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
我发现CMD里的每行字符限制数 我在执行下面的BAT文件时正常
而在执行下面的BAT文件就显示输入行太长。 也就是输入行最长是2048个字! 随便说下,在CMD里执行 SET /A 39%16会得到39除16的余数7,而在BAT文件里执行 SET /A 39%16会得到396,因为在BAT文件里系统启用了默认的%0~~%9 而%1是空的话执行 SET /A 39%16就会得到396,如果要在BAT里取余应该用下面类似的命令来取余: SET A=16 SET/A 39%%A% 在执行时系统会把%A%替换成16后执行取余操作! |
|
| 第2楼 无奈何 | 发表于 2006-10-17 22:20 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
qwe1234567 兄使用的是 2000 吧?
命令行长度限制:
参考链接:http://www.ss64.com/nt/cmd.html 在批处理中需要将单百分号替换为双百分号 set /a x=39%%16 |
|
| 第3楼 pengfei | 发表于 2006-10-17 22:35 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
xp下也有限制...
|
|
| 第4楼 9527 | 发表于 2006-10-17 22:54 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
set a=16
set /a d=39%%16 SET /a b=39%%a set /a c=a+1 echo %c% %b% %d% qwe1234567兄试试上面的代码吧,也许就会明白,SET /A有一个特性,那就是, 例如 : set a=1 那么 set /a a=a+1和set /a %a%+1是一样的 |
|
| 第5楼 pengfei | 发表于 2006-10-17 23:11 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
有意思, qwe1234567版主第一楼取余数时忘记了cmd和批处理下"%"与"%%"号的差别.
输入行太长, 这可能是因为系统为环境变量分配的内存空间是有限的, 发现XP下为八千多个字节, 2000下是二千多字节, 还是有区别的. 而pip兄讲的那个set /a的特性, set /a a=a+1, set /a a=%a%+1实际是一样的, 也是set命令的一种处理机制吧. %a%作为一个环境变量, 一般要用%a%来表示. 而跟在set /a 后不用转义, 也就是说出现字母a, 系统自动将其当作一个字符变量来处理, 然后在内存中跟据变量名获取相应的字符串值. [ Last edited by pengfei on 2006-10-17 at 23:42 ] |
|
| 第6楼 electronixtar | 发表于 2006-10-17 23:46 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
的确有限制。上次在一个快捷方式inject脚本就发现了这个问题。很是郁闷
|
|
| 第7楼 lxmxn | 发表于 2006-10-18 01:35 |
| 版主 发帖 4,938 积分 11,386 | |
|
恩,有限制...
记得上次执行N个"echo %time%"的批处理时,提示说命令行太长... 汗一个... |
|
| 第8楼 vkill | 发表于 2006-10-18 05:41 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
xp 没有这个限制的~pip说的对,我试过的昨天刚刚
|
|
| 第9楼 lxmxn | 发表于 2006-10-18 06:11 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by he200377 at 2006-10-18 05:41: XP没有命令字符长度的限制吗?不会吧?我的怎么限制了? |
|
| 第10楼 pengfei | 发表于 2006-10-18 08:42 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
变量的存储单元总是有大小限制的. 只是多少的问题.
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |