Board logo

标题: [特效代码] 批处理set/p=<nul命令的这个用法是什么意思? [打印本页]

作者: akkk    时间: 2010-11-28 18:55     标题: 批处理set/p=<nul命令的这个用法是什么意思?

本帖最后由 pcl_test 于 2016-11-26 14:45 编辑

for /l %%a in (1,1,4) do (for /l %%i in (0,1,%%a) do (>>con set/p= <nul)
作者: hanyeguxing    时间: 2010-11-28 20:22

原帖由 akkk 于 2010-11-28 18:55 发表
for /l %%a in (1,1,4) do (for /l %%i in (0,1,%%a) do (>>con set/p= <nul)

1,楼主复制的命令不完整,因为括号不成对
2,set/p= <nul,不换行的连续显示空格
3,没有特殊原因时,在cmd即命令解释器下不需要>>con,因为默认是直接输出到屏幕(con)的
作者: akkk    时间: 2010-11-28 20:36

for /l %%a in (1,1,4) do (for /l %%i in (0,1,%%a) do (>>con set/p= <nul)
echo *
ping -n 0 127.1>nul)       完整的就是这样了  请在帮分析一下 谢谢
作者: hanyeguxing    时间: 2010-11-28 21:35

在xp下的批处理这样写:
  1. @echo off
  2. for /l %%a in (1,1,4) do (
  3.           for /l %%i in (0,1,%%a) do set/p= <nul
  4.           echo *
  5.           ping -n 0 127.1 >nul
  6. )
  7. pause>nul
复制代码
for /l %%a in (1,1,4) do 循环执行4次,所以显示时看到4行,同时%%a的值依次为1、2、3、4
for /l %%i in (0,1,%%a) do  也是循环执行,分别是执行2、3、4、5次,每次均执行set/p= <nul即不换行的显示一个空格。连起来就是分别显示2、3、4、5个空格
echo *显示一个*字符并换行
ping -n 0 127.1>nul延迟时间
这样整个批处理就是显示4行,分别是2、3、4、5个空格加一个*字符

[ 本帖最后由 hanyeguxing 于 2010-11-28 23:21 编辑 ]
作者: wc726842270    时间: 2010-11-28 21:56     标题: 回复 4楼 的帖子

请教一下,为什么这里用的是ping /n 0.127.1呢,N不是代表PING的次数么,这里是0还会有效果么?
作者: hanyeguxing    时间: 2010-11-28 22:08

有效果,和ping /n 1.127.1的延迟时间一样。
作者: akkk    时间: 2010-11-28 23:01

ping -n 0 127.1 我试了一下 提示:Bad value for option -n, valid range is from 1 to 4294967295. 说明ping -n 0 这个命令是不能通过了 我的是xp sp3
作者: hanyeguxing    时间: 2010-11-28 23:22

在这里的“ping -n 0 127.1 >nul”,我们并不关心他的输出结果是什么,只关心他完成这个命令所需要的时间,因为他在这里起延迟时间的作用




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2