![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 23:41 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » set/p=*<nul进行循环产生的怪异结果 |
| 可打印版本 877 / 5 |
| 第1楼 jlty258 | 发表于 2009-06-01 05:33 |
| 初级用户 发帖 34 积分 37 | |
|
set/p=*<nul进行循环产生的怪异结果 原想打印出如下图形
* *** ***** ******* ***** *** * 编了如下程序 @echo off& setlocal enabledelayedexpansion for /l %%i in (1,2,13) do ( if defined flag (set/a n-=2) else set/a n=%%i for /l %%k in (1,1,!n!) do set /p=*<nul echo. if !n! geq 7 set flag=a ) echo.&pause 显示结果为 * * * * * * * * * * * * * * * * * * * * * * * * * 自己看了半天,是在找不出来原因 哪位帮忙看一下? |
|
| 第2楼 26933062 | 发表于 2009-06-01 06:27 |
| 银牌会员 发帖 879 积分 2,268 | |
|
你的 set /p=*<nul 后面多了个空格
|
|
| 第3楼 flyzr | 发表于 2009-06-01 08:21 |
| 新手上路 发帖 10 积分 11 | |
|
set /p=*<nul 後面空格有什麼用?
|
|
| 第4楼 jlty258 | 发表于 2009-06-01 12:13 |
| 初级用户 发帖 34 积分 37 | |
|
确实是多了个空格的原因,在set/p=*<nul 后加了回车后效果就出来,但是这原因是什么?还望哪位解答一下!
我曾经专门在记事本中测试过空格行,空格对命令效果的影响,但也无法解释上述问题.... [ Last edited by jlty258 on 2009-6-1 at 12:15 ] |
|
| 第5楼 qzwqzw | 发表于 2009-06-01 22:12 |
| 银牌会员 发帖 636 积分 2,343 | |
|
原因很简单
因为cmd认为set /p set /p=*<nul(空格)与set /p=*(空格)<nul是一样的 这源于cmd的预处理机制 |
|
| 第6楼 jlty258 | 发表于 2009-06-02 01:18 |
| 初级用户 发帖 34 积分 37 | |
|
原来如此,突然想起<nul是不忌放置地点的,放在最后与中间其实没区别
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |