循环上一条命令批处理怎么写

1.怎么做个循环执行的批处理命令啊通过ping命令来实现延时,很容易受到硬件和系统的影响,延时时间波动比较大,不够精确 。
可以用借用VBS来延时,这个比较准确 。
@echo off
echo WScript.Sleep 300*1000>"%tmp%\delay.vbs"
for /l %%i in (1,1,150) do (
start "" /w "%tmp%\delay.vbs"
net session /delete /y
)
del /f "%tmp%\delay.vbs"
补充:
ping -n 300 127.0>nul
-n后面的300不是说是300秒,而要发送的回显请求数为300 。
自然300*150并不是12.5个小时,个把小时就结束的也是正常现象 。
2.dos下循环命令怎么写我贴个For的吧,那就是DOS的循环~------------------------------------------批处理 教程 转贴 for详细for命令应用以前常觉得DOS的命令行功能太弱,无法象UNIX一样可以用命令行完成非常复杂的操作 。
实际上,当MS从WIN2K开始将命令行增强后,已经借鉴了相当多UNIX的优点,虽然还无法做到象UNIX那么灵活,但已可完成绝大多数的任务,比如用&&和||连接两个(或更多)命令,由前一个的返回值来决定下一个是否执行,等等 。而在这些增强中,最明显的,就是FOR命令 。
举个例子,用适当的参数,可用FOR命令将 date /t 的输出 从 "Sat 07/13/2002" 变成你想要的格式,比如,"2002-07-13": c:>for /f "tokens=2,3,4 delims=/ " %a in ('date /t') do @echo %c-%a-%b 2002-07-13 该例将在(3)中详细说明 。0. 基本应用 简单说,FOR是个循环,可以用你指定的循环范围生成一系列命令 。
最简单的例子,就是人工指定循环范围,然后对每个值执行指定的命令 。例如,想快速报告每个硬盘分区的剩余空间: for %a in (c: d: e: f do @dir %a | find "bytes free" 将输出: 8 Dir(s) 1,361,334,272 bytes free 15 Dir(s) 8,505,581,568 bytes free 12 Dir(s) 12,975,149,056 bytes free 7 Dir(s) 11,658,854,400 bytes free 用它可以使一些不支持通配符的命令对一系列文件进行操作 。
在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配) 。遇到类似情况就可以用FOR: for %a in (*.txt) do type %a 这些还不是FOR最强大的功能 。
我认为它最强大的功能,表现在以下这些高级应用: 1. 可以用 /r 参数遍历整个目录树 2. 可以用 /f 参数将文本文件内容作为循环范围 3. 可以用 /f 参数将某一命令执行结果作为循环范围 4. 可以用 %~ 操作符将文件名分离成文件名、扩展名、盘符等独立部分 现分别举例说明如下: 1. 用 /r 遍历目录树 当用 *.* 或 *.txt 等文件名通配符作为 for /r 的循环范围时,可以对当前目录下所有文件(包括子目录里面的文件)进行操作 。举个例子,你想在当前目录的所有txt文件(包括子目录)内容中查找"bluebear"字样,但由于find本身不能遍历子目录,所以我们用for: for /r . %a in (*.txt) do @find "bluebear" %a find 前面的 @ 只是让输出结果不包括 find 命令本身 。
这是DOS很早就有的功能 。和FOR无关 。
当用 . 作为循环范围时,for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件 。有点象 TREE 命令,不过侧重点不同 。
TREE 的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软件发行时我们想把这些CVS目录全部去掉: for /r . %a in (.) do @if exist %aCVS rd /s /q %aCVS 先用 if exist 判断一下,是因为 for 只是机械的对每个目录进行列举,如果有些目录下面没有CVS也会被执行到 。用 if exist 判断一下比较安全 。
这种删除命令威力太大,请小心使用 。最好是在真正执行以上的删除命令前,将 rd /s /q 换成 @echo 先列出要删出的目录,确认无误后再换回rd /s /q: for /r . %a in (.) do @if exist %aCVS @echo %aCVS 可能目录中会多出一层 ".",比如 c:projrelease.CVS ,但不会影响命令的执行效果 。