[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 初学批处理求助 ver>nul

本帖最后由 lzyecho 于 2014-1-3 12:48 编辑

下面代码中 ver>nul 在for语句中是什么意思?特别是 ver 是什么意思,谢谢。
  1. @echo off
  2. for /l %%i in (1 1 20) do (
  3.    set /p=%%i <nul
  4.    for /l %%a in (1 1 500) do ver>nul
  5. )
复制代码
注:for /l %%a in (1 1 500) do ver>nul,它的目的是利用for循环运行某一命令来达到延时显示的目的。

ver是一个普通的系统命令,它的作用是查看系统的版本。
ver>nul表示把ver命令的输出屏蔽掉。
目的是:利用for循环运行某一命令来达到延时显示的目的。

TOP

木有sleep的悲哀
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 2# DAIC


    感谢您的回复,有些理解了(我知道ver是查版本的,但是不懂放在这里是什么意思),我以为ver>nul是特指另的什么的,现在明白,这里可以是任意的命令,只要输出屏蔽掉就行,以达到延时的目的。我发现有些话非得要别人再说一次才能懂,自己第一次看就是不明白。再次感谢!

TOP

回复 3# PowerShell


   版主, “木有sleep的悲哀” ------  没有睡觉的悲哀?? 什么意思,不懂,请明示。

TOP

木有sleep命令的悲哀,----注意高版本延时用timeout这个命令。powershell延时用sleep命令
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 5# lzyecho


Linux系统可以用sleep命令来延时
Win7可以用timeout命令来延时,比如延时3秒:
  1. timeout /t 3
复制代码

TOP

本帖最后由 lzyecho 于 2014-1-6 21:55 编辑

长见识了,谢谢各位!也就是说上面的代码还可修改成下面的:
  1. @echo off
  2. for /l %%i in (1 1 20) do (
  3.    set /p=%%i <nul
  4.   timeout /t 1 >nul
  5. pause
复制代码

TOP

回复 2# DAIC


    我能看出ver>nul表示把ver命令的输出屏蔽掉但没有看出“set /p=%%i <nul”  这句的意思 和 用意 然后我就改了如下代码来理解其含义,运行后会显示 1 1 2 2 等样式的字符出来 但还是没弄明白为什么这样  望指教
  1. @echo off
  2. for /l %%i in (1 1 20) do (
  3.    set /p=%%i <nul
  4.    echo %%i
  5.    pause
  6.   )
复制代码

TOP

回复 9# zaixinxiangnian


它的作用是输出一个字符串,不换行。
与之对应,echo命令在输出一个字符串之后,会换行。

TOP

小结一下:
echo  %%i    :  换行输出
set /p=%%i <nul  : 不换行输出

TOP

回复 10# DAIC


    谢谢 经多次复制粘贴尝试,,,,终于弄明白了....比较取巧的SET用法。。。
“<nul” 意思是不是把空字符传输给SET

TOP

我从新手或者个人角度感觉"set /p=%%i <nul  : " 最终意思和作用是 不换行输出  如果从SET用法和<nul解释新手很容易理解

TOP

回复 12# zaixinxiangnian


其实这是非常基础的知识,但是大部分人太懒了,不愿意看教程。
http://bbs.bathome.net/viewthread.php?tid=3774#pid23888

TOP

我们正在学习中,一定会看的,不过有时看了还是不大懂的时候就得咨询你们这些高手们了,呵呵。。。

TOP

返回列表