批处理延时命令

合集下载

批处理中setlocalenabledelayedexpansion的作用详细整理

批处理中setlocalenabledelayedexpansion的作用详细整理

批处理中setlocal enabledelayedexpansion的作用详细整理设置本地为延迟扩展。

其实也就是:延迟变量,全称延迟环境变量扩展, 想进阶,变量延迟是必过的一关!所以这一部分希望你能认真看。

为了更好的说明问题,我们先引入一个例子。

例1:复制代码代码如下:@echo offset a=4set a=5&echo %a%pause结果:4解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?让我们先了解一下批处理运行命令的机制:批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。

我们现在分析一下例1,批处理在运行到这句“set a=5 &echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!(没有为什么,批处理就是这样做的。

)而为了能够感知环境变量的动态变化,批处理设计了变量延迟。

简单来说,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

那么如何开启变量延迟呢?变量延迟又需要注意什么呢?举个例子说明一下:例2:复制代码代码如下:@echo offsetlocalenabledelayedexpansionset a=4set a=5&echo !a!pause结果:5解说:由于启动了变量延迟,得到了正确答案。

变量延迟的启动语句是“setlocalenabledelaye dexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

分析一下例2,首先“setlocalenabledelayedexpansion”开启变量延迟,然后“set a= 4”先给变量a赋值为4,“set a=5&echo !a!”这句是给变量a赋值为5并输出(由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了)。

利用at命令在Linux中延时执行任务

利用at命令在Linux中延时执行任务

利用at命令在Linux中延时执行任务在Linux系统中,at命令是一种用于延时执行任务的工具。

通过at 命令,用户可以在指定的时间点运行特定的命令或脚本,实现任务的自动化处理。

本文将介绍如何使用at命令在Linux中延时执行任务。

一、at命令简介at命令是一种定时执行命令的工具,它可以让用户在指定的时间执行任务。

at命令的基本语法如下:at [-f 文件名] 时间其中,-f选项指定了要执行的命令或脚本文件,时间参数指定了任务执行的时间。

下面我们来详细介绍at命令的使用方法。

二、at命令的使用方法1. 查看当前已有的延时任务我们可以使用以下命令来查看当前已经存在的延时任务:atq2. 创建延时任务要创建一个延时任务,可以使用以下命令:echo "command" | at 时间其中,command是要执行的命令,时间是指定任务执行的时间。

时间的格式可以是绝对时间,例如2021-01-01 12:00:00;也可以相对于当前时间的相对时间,例如now + 2 hours表示2小时后执行。

3. 删除延时任务如果需要删除一个已经创建的延时任务,可以使用如下命令:atrm 任务编号其中,任务编号可以通过atq命令查看得到。

三、示例下面通过一个示例来演示如何使用at命令在Linux中延时执行任务。

假设我们要在2022年1月1日12:00:00执行一个脚本文件/home/user/test.sh。

那么我们可以使用以下命令来创建延时任务:echo "/home/user/test.sh" | at 2022-01-01 12:00:00执行以上命令后,系统会返回一个任务编号,表示任务已经成功创建。

如果需要查看当前已有的延时任务,可以使用以下命令:atq如果要删除刚刚创建的延时任务,可以使用以下命令:atrm 任务编号四、注意事项在使用at命令时,需要注意以下几点:1. at命令需要管理员权限才能使用,如果当前用户没有足够权限,可以使用sudo命令来提升权限。

pipline script 延时写法

pipline script 延时写法

pipline script 延时写法Pipeline Script 延时写法在Jenkins的Pipeline脚本中,延时是一项非常重要的功能。

通过添加延时可以控制任务的执行顺序和时间间隔,从而实现更灵活的流水线构建。

一、使用延时指令在Pipeline脚本中,我们可以使用`sleep`指令来实现延时操作。

该指令可以让任务在执行到该处时暂停一段时间。

以下是一个例子,展示了如何使用`sleep`指令来延时2分钟:```groovynode {stage('延时示例') {echo "开始执行任务"sleep(120)echo "延时2分钟后继续执行"}}```在上述例子中,`sleep(120)`表示暂停执行2分钟。

我们可以根据实际需要调整延时的时间。

二、延时的单位在Pipeline脚本中,延时的单位是秒。

因此,如果我们想要延时1分钟,需要将延时时间设置为60秒。

如果需要更加精确的延时,可以使用小数来表示秒的百分比。

例如,如果想要延时1.5秒,可以使用`sleep(1.5)`。

三、延时与Stage之间的关系Pipeline脚本是由一系列Stage构成的,每个Stage代表一个任务阶段。

在Stage之间添加延时可以控制任务的顺序和间隔。

以下是一个例子,展示了如何在两个Stage之间添加延时:```groovynode {stage('Stage1') {echo "开始执行Stage1"}sleep(60)stage('Stage2') {echo "延时1分钟后执行Stage2"}}```在上述例子中,Stage1执行完毕后会暂停60秒,然后才会执行Stage2。

四、延时与步骤之间的关系在Pipeline脚本中,每个Stage由多个步骤构成。

可以在步骤之间添加延时,控制步骤的执行时间间隔。

批处理命令大全

批处理命令大全

的字符串的。 %i专门在for语句中得到说明,%j和%k是通过tokens=选项 专门得到说明的。您可以通过tokens=一行指定最多26个
符号,只要不试图说明一个高于字母'z'或'Z'的变数。请记 住,FOR变量名分大小写,是通用的;而且,同时不能有 52个以上都在使用中。 您还
可以在相邻字符串上使用FOR/F分析逻辑;方法是,用单 引号将括号之间的filenameset括起来。这样,该字符串会 被当作一个檔中的一个单一
程序执行完毕跳至标题exit处退出 gotoexit :exit Rem这里是程序的出口 2、IFstring1==string2c
ommand 检测当前变量的值做出判断 ECHOOFF IF%1==2gotono Echo变数相等! Gotoexit :no
echo变数不相等 gotoexit :exit 大家可以这样看效果C:>test.bat数字 3、IF[NOT]EXISTfi
部分:特殊的符号与批处理 在命令行下有些符号是不允许使用的但有些符号却有着特殊的意 义。 1、符号(@) @在批处理中的意思是关闭当前行
的回显。我们从上面知道用命令echooff可以关掉整个批 处理的命令回显但却不能不显示echooff这个命令。现在 我们在这个命令前加上@这样e
chooff这一命令就被@关闭了回显从而达到所有命令均不回 显得要求 2、符号(>) >的意思是传递并覆盖。他所起的作用是将运行后的回显结
D如果集中包含通配符,则指定与目录名匹配,而不与文 件名匹配。 /F从指定的文件中读取数据作为变量 eol=c-指一个行注释字符的结尾(就
一个) skip=n-指在檔开始时忽略的行数。 delims=xxx-指分隔符集。这个替换了空格和跳格键的默认分隔符 集。 tokens

如何定时、延时关闭指定程序

如何定时、延时关闭指定程序
@ping 127.1 -n 5 >nul
@taskkill /f /IM TTPlayer.exe
------------------------------------------
这个代码是延时5秒关闭千千静听,“TTPlayer.exe”是千千静听,你可以更换。 批处理:把上面两行代码写入记事本,另存为bat格式即可。 2
"C:\WINDOWS\system32\shutdown.exe" -s -f -t 360
-----------------------------------------
下面列出了更多参数,大家可以在Shutdown.exe中按需使用。
-f 强行关闭应用程序
-m \\计算机名 控制远程计算机
-i 打开设置自动关机对话框,对自动关机进行设置,但必须是Shutdown的第一个选项
-l 注销当前用户
-r 关机并重启
3、如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录下(但关机时多出现一个dos窗口)。
1、延时关机: 运行中输入:Shutdown.exe -s -f -t 10800
表示3个小时后关机,1小时3600秒,...也可以写为批处理,^_^
取消延时关机:运行中再输入:Shutdown.exe -a 即可。 批处理,如下(6分钟后关机): -----------------------------------------
如何定时、延时关闭指定程序!
WindowsXP自动关机,不借用任何软件 2008-09-25 些命令我均在XP中用过,绝对没有问题: 1
、批处理延时关闭某程序,代码如下:

批处理命令教程大全

批处理命令教程大全

目录第一章批处理基础第一节常用批处理内部命令简介1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION启动或停用延缓环境变量扩展名。

)17、A TTRIB显示或更改文件属性第二节常用特殊符号1、@命令行回显屏蔽符2、%批处理变量引导符3、> 重定向符4、>>重定向符5、<、>、<& 重定向符6、|命令管道符7、^转义字符8、组合命令9、& 组合命令10、||组合命令11、\"\"字符串界定符12、, 逗号13、; 分号14、() 括号15、! 感叹号第二章FOR命令详解一、基本格式二、参数/d仅为目录三、参数/R递归(文件名)四、参数/L迭代数值范围五、参数/F迭代及文件解析第三章FOR命令中的变量一、~I- 删除任何引号(\"),扩展%I二、%~fI- 将%I 扩展到一个完全合格的路径名三、%~dI- 仅将%I 扩展到一个驱动器号四、%~pI- 仅将%I 扩展到一个路径五、%~nI- 仅将%I 扩展到一个文件名六、%~xI- 仅将%I 扩展到一个文件扩展名七、%~sI- 扩展的路径只含有短名八、%~aI- 将%I 扩展到文件的文件属性九、%~tI- 将%I 扩展到文件的日期/时间十、%~zI- 将%I 扩展到文件的大小十一、%~$PATH:I第四章批处理中的变量一、系统变量二、自定义变量第五章set命令详解一、用set命令设置自定义变量二、用set命令进行简单计算三、用set命令进行字符串处理1、字符串替换2、字符串截取第六章if命令讲解第一种用法:IF [NOT] ERRORLEVEL number command第二种用法:IF [NOT] string1==string2 command第三种用法:IF [NOT] EXIST filename command第四种用法:IF增强的用法第七章DOS编程高级技巧一、界面设计二、if…else…条件语句三、循环语句四、子程序五、用ftp命令实现自动下载六、用7-ZIP实现命令行压缩和解压功能七、调用VBScript程序八、将批处理转化为可执行文件九、时间延迟1、利用ping命令延时2、利用for命令延时3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内十、模拟进度条十一、特殊字符的输入及应用十二、随机数(%random%)的应用技巧十三、变量嵌套与命令嵌套1、更正了所有的错别字,适当排版,增加条理性。

怎么用c md指令让指令运行等待指定的时间

怎么用c md指令让指令运行等待指定的时间

使用C语言编程时,有时需要让程序在执行到某个指令时暂停一段时间,这就需要用到延时函数。

在C语言中,我们可以通过调用<time.h>库中的函数来实现延时操作。

下面我将详细介绍如何使用C 语言的命令让指令在运行时等待一段指定的时间。

一、包含头文件在使用延时函数之前,首先需要包含<time.h>头文件,该头文件中包含了一些时间处理的函数和结构定义。

#include <time.h>二、使用延时函数C语言中常用的延时函数是sleep()和usleep()函数。

这两个函数能够让程序在执行到该函数时暂停指定的时间。

1. sleep()函数sleep()函数的原型为:unsigned int sleep(unsigned int seconds);该函数的参数为要延时的秒数,函数返回时表示休眠结束或者还剩下多少时间没有休眠完成。

下面是一个使用sleep()函数的例子:#include <stdio.h>#include <time.h>int m本人n() {printf("This is a demo for sleep function\n");printf("Sleep for 2 seconds\n");sleep(2); // sleep for 2 secondsprintf("Wake up after 2 seconds\n");return 0;}2. usleep()函数usleep()函数可以让程序在执行到该函数时暂停指定的微秒时间。

该函数的原型为:int usleep(useconds_t usec);下面是一个使用usleep()函数的例子:#include <stdio.h>#include <time.h>int m本人n() {printf("This is a demo for usleep function\n");printf("Sleep for 1 second\n");usleep(xxx); // sleep for 1 secondprintf("Wake up after 1 second\n");return 0;}三、实例分析下面我们来看一个实际的例子,假设我们需要让程序在执行到某个指令时等待5秒钟再继续执行,我们可以使用sleep()函数来实现:#include <stdio.h>#include <stdlib.h>#include <time.h>int m本人n() {printf("Start\n");// do somethingprintf("W本人t for 5 seconds...\n");sleep(5); // w本人t for 5 seconds// do something elseprintf("End\n");return 0;}在上面的例子中,程序在执行到sleep(5)时会暂停5秒钟,然后再继续执行后面的指令。

批处理for与变量延迟详解

批处理for与变量延迟详解

其中,第3点是最为关键的,它描述了for语句的执行过程,是for语句的精髓所在,大家一定要牢记这一条,才能深刻理解更为复杂的for流程。
有了以上的基础,我们再来看一个例子,这个例子修改了code1的部分内容,结果将大不一样:
[code2]
@echo off
for %%I in (bbs,bathome,cn) do echo %%I
[txt1]
论坛的目标是:不求最大,但求最好,做最实用的批处理论坛。
论坛地址:。
这里是:新手晋级的福地,高手论剑的天堂。
那么,将如下代码保存为test.cmd,并放在test.txt同一目录下运行,将会在屏幕上原样显示test.txt的内容:
[code4]
for语句从入门到精通
首发地址:/thread-2189-1-1.html
一 前言
二 for语句的基本用法
三 for /f 含变量延迟
四 for /r
五 for /d
六 for /l
一、前言
在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟练使用for语句,已经成为衡量一个人批处理水平高低最主要的标准。
(一) 为解析文本而生:for /f 的基本用法
所有的对象,无论是文件、窗体、还是控件,在所有的非机器语言看来,无外乎都是形如"c:\test.txt"、"CWnd"之类的文本信息;而所有的对象,具体的如ini文件中的某条配置信息、注册表中的某个键值、数据库中的某条记录……都只有转化为具有一定格式的文本信息,方可被代码识别、操控。可以说,编程的很大一部分工作,都是在绞尽脑汁想方设法如何提取这些文本信息。

bat 批处理延迟运行脚本

bat 批处理延迟运行脚本

打开“记事本”,输入以下代码:
Start/w C:\Patha\A.exe
Start C:\Patha\B.exe
Ping 127.0.0.1 –n 10 >nul
Start C:\Patha\C.exe
将此文件保存为一个bat文件,例如qidong.bat。双击运行这个批处理文件,就可即刻验证各程序的启动顺序和延迟运行情况。最后将此文件拖入windows的“启动”组就OK了。当然,三个自启动文件是靠批处理文件来调用的,所以就不必放入“启动”组了。
一。利用计划任务
例:
@echo off
mode con lines=25
title 定时关机
color 1f
cls
echo.
echo.
echo.
echo.
echo 时间使用24小时制(如2:15、12:00),可以输入多个时间点
echo.
echo 多个时间点用空格分隔
for /f “tokens=2,3 delims=- ” %%a in (1.ini) do set h=%%a & set m=%%b
del 1.ini
if %h%==04 goto fen
goto xunhuan
:fen
if %m%==05 goto nao
goto xunhuan
@echo %time%
@echo on
====================================种目的,我们经常需要将一些程序加入到windows的“启动”组中,也就是让这些程序随系统启动而自动运行。有时,我们希望这些自启动程序能按一定的先后顺序运行,对于服务器而言,可能有其中一个程序要依赖另一程序才能运行,因而还需要在这二个程序启动时有一定的时间延迟。

WINDOWS命令行批处理中常用的五种延时方法

WINDOWS命令行批处理中常用的五种延时方法

WINDOWS命令行批处理中常用的五种延时方法:第一种延时方法@echo offecho 利用choice命令延时3秒echo 延时前:%time%:: 这里为延时前执行的程序start /w 1.exechoice /T 3 /D y /N >nulecho 延时后:%time%:: 这里为延时后执行的程序start /w 2.exeREM 以下是用echo echo ^G>temp.txt得到的特殊字符REM 作用是让喇叭响一声echopause第二种延时方法echo 利用timeout命令延时3秒echo 延时前:%time%:: 这里为延时前执行的程序start /w 1.exetimeout 3 >nulecho 延时后:%time%:: 这里为延时后执行的程序start /w 2.exeREM 以下是用echo echo ^G>temp.txt得到的特殊字符REM 作用是让喇叭响一声echopause第三种延时方法echo 利用ping命令延时3秒echo 延时前:%time%:: 这里为延时前执行的程序start /w 1.exeping /n 3 127.0.0.1 >nulecho 延时后:%time%:: 这里为延时后执行的程序start /w 2.exeREM 以下是用echo echo ^G>temp.txt得到的特殊字符REM 作用是让喇叭响一声echopause第四种延时方法@echo offecho 利用for命令延时echo 延时前:%time%for /l %%i in (1,1,5000) do echo %%i>nul echo 延时后:%time%REM 作用是让喇叭响一声echopause第五种延时方法@echo offecho 利用vbs 延迟函数延时5秒echo %time%call :delay 5000echo %time%pauseexit:delayecho WScript.Sleep %1>delay.vbs CScript //B delay.vbsdel delay.vbsgoto :eof。

批处理常用命令

批处理常用命令

批处理常用命令什么是批处理?批处理是一种在Windows操作系统中执行一系列命令的技术。

通过批处理,可以自动化执行多个命令,从而提高工作效率。

批处理文件通常以.bat或.cmd为文件后缀。

批处理常用命令1. echoecho命令用于在屏幕上显示文本。

可以使用以下语法:echo [文本]例如,输入以下命令:echo Hello, World!屏幕上将显示Hello, World!2. pausepause命令用于暂停批处理的执行,直到用户按下任意键。

它通常用于确保在执行下一步之前用户已经阅读了某些信息。

pause3. ifif命令用于根据条件执行不同的操作。

可以使用以下语法:if [条件] ([操作1]) else ([操作2])例如,下面的示例检查变量x是否等于10,并根据结果执行不同的操作:set x=10if %x%==10 (echo x is equal to 10.) else (echo x is not equal to 10.)4. forfor命令用于循环执行一系列操作。

可以使用以下语法:for %%变量 IN (列表) DO ([操作])例如,下面的示例将输出从1到5的数字:for %%i in (1 2 3 4 5) do (echo %%i)5. setset命令用于设置或显示环境变量。

可以使用以下语法:set [变量名]=[值]例如,输入以下命令将设置名为MESSAGE的环境变量:set MESSAGE=Hello, World!6. callcall命令用于调用一个批处理文件中的另一个批处理文件。

可以使用以下语法:call [批处理文件路径]例如,下面的示例调用名为example.bat的批处理文件:call example.bat7. startstart命令用于启动一个程序或打开一个文档。

可以使用以下语法:start [程序路径/文档路径]例如,输入以下命令将启动记事本应用程序并打开一个文档:start notepad.exe C:\example.txt8. deldel命令用于删除文件。

批处理命令大全

批处理命令大全

批处理命令大全1 echo 和@回显控制命令@ #关闭单行回显echo off #从下一行开始关闭回显@echo off #从本行开始关闭回显。

一般批处理第一行都是这个echo on #从下一行开始打开回显echo #显示当前是echo off 状态还是echo on 状态echo. #输出一个"回车换行",一般就是指空白行echo hello world #输出hello world"关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开回显2 errorlevel程序返回码echo %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功默认值为0,一般命令执行出错会设errorlevel 为13 dir显示目录中的文件和子目录列表dir #显示当前目录中的文件和子目录dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件dir c: /a:d #显示C 盘当前目录中的目录dir c:\ /a:-d #显示C 盘根目录中的文件dir d:\mp3 /b/p #逐屏显示d:\mp3 目录里的文件,只显示文件名,不显示时间和大小dir *.exe /s显示当前目录和子目录里所有的.exe文件其中* 是通配符,代表所有的文件名,还一个通配符? 代表一个任意字母或汉字如c*.* 代表以 c 开头的所有文件.exe 代表所有文件名是一个字母的.exe文件如果指定的目录或文件不存在,将返回errorlevel 为1每个文件夹的dir 输出都会有2个子目录. 和... 代表当前目录.. 代表当前目录的上级目录dir . #显示当前目录中的文件和子目录dir .. #显示当前目录的上级目录中的文件和子目录其它参数可参考dir /?4 cd更改当前目录cd mp3 #进入当前目录中的mp3 目录cd .. #进入当前目录中的上级目录cd\ #进入根目录cd #显示当前目录cd /d d:\mp3 #可以同时更改盘符和目录cd\"Documents and Settings"\All users文件名带空格,可以不加引号建议加上引号,因为有的时候不加引号会运行出错,如登录脚本如果更改到的目录不存在,则出错返回errorlevel=15 md创建目录md abc #在当前目录里建立子目录abcmd d:\a\b\c #如果d:\a 不存在,将会自动创建6 rd删除目录rd abc #删除当前目录里的abc 子目录,要求为空目录rd /s/q d:\temp #删除d:\temp 文件夹及其子文件夹和文件,不需要按Y 确认7 del删除文件del d:\test.txt #删除指定文件,不能是隐藏、系统、只读文件del *.*删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按Y 确认del /q/a/f d:\temp\*.*删除d:\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录del /q/a/f/s d:\temp\*.*删除d:\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8 ren文件重命名ren 1.txt 2.bak #把1.txt 更名为2.bakren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件ren d:\temp tmp #支持对文件夹的重命名9 cls清屏10 type显示文件内容type c:\boot.ini #显示指定文件的内容,程序文件一般会显示乱码type *.txt #显示当前目录里所有.txt文件的内容11 copy拷贝文件copy c:\test.txt d:\复制c:\test.txt 文件到d:\copy c:\test.txt d:\test.bak复制c:\test.txt 文件到d:\ ,并重命名为test.bakcopy c:\*.*复制c:\ 所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录copy con test.txt从屏幕上等待输入,按Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy 1.txt + 2.txt 3.txt合并1.txt 和 2.txt 的内容,保存为 3.txt 文件如果不指定3.txt ,则保存到 1.txtcopy test.txt +复制文件到自己,实际上是修改了文件日期12 title设置cmd窗口的标题title 新标题#可以看到cmd窗口的标题栏变了13 ver显示系统版本14 label 和vol设置卷标vol #显示卷标label #显示卷标,同时提示输入新卷标label c:system #设置C盘的卷标为system15 pause暂停命令运行该命令时,将显示下面的消息:请按任意键继续. . .一般用于看清楚屏幕上显示的内容16 rem 和::注释命令注释行不执行操作17 date 和time日期和时间date #显示当前日期,并提示输入新日期,按"回车"略过输入date/t #只显示当前日期,不提示输入新日期time #显示当前时间,并提示输入新时间,按"回车"略过输入time/t #只显示当前时间,不提示输入新时间18 goto 和:跳转命令:label #行首为:表示该行是标签行,标签行不执行操作goto label #跳转到指定的标签那一行19 find (外部命令)查找命令find "abc" c:\test.txt在c:\test.txt 文件里查找含abc 字符串的行如果找不到,将设errorlevel 返回码为1find /i "abc" c:\test.txt查找含abc 的行,忽略大小写find /c "abc" c:\test.txt显示含abc 的行的行数20 more (外部命令)逐屏显示more c:\test.txt #逐屏显示c:\test.txt 的文件内容21 tree显示目录结构tree d:\ #显示D盘的文件目录结构22 &顺序执行多条命令,而不管命令是否执行成功c: & cd\ & dir /w相当于把下面3行命令写到1行去了c:cd\dir /w23 &&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令f: && cd\ && dir >c:\test.txt注意如果f盘不存在,那么后面2条命令将不会执行find "ok" c:\test.txt && echo 成功如果找到了"ok"字样,就显示"成功",找不到就不显示24 ||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令f: || e:如果有f盘就不进入e盘find "ok" c:\test.txt || echo 不成功如果找不到"ok"字样,就显示"不成功",找到了就不显示25 |管道命令前一个命令的执行结果输出到后一个命令dir *.* /s/a | find /c ".exe"管道命令表示先执行dir 命令,对其输出的结果执行后面的find 命令该命令行结果:输出当前文件夹及所有子文件夹里的.exe文件的个数type c:\test.txt|more这个和more c:\test.txt 的效果是一样的26 > 和>>输出重定向命令> 清除文件中原有的内容后再写入>> 追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件echo hello world>c:\test.txt生成c:\test.txt文件,内容为hello world这个格式在批处理文件里用得很多,可以生成.reg .bat .vbs 等临时文件type c:\test.txt >prn屏幕上不显示文件内容,转向输出到打印机echo hello world>con在屏幕上显示hello world,实际上所有输出都是默认>con 的copy c:\test.txt f: >nul拷贝文件,并且不显示"文件复制成功"的提示信息,但如果f盘不存在,还是会显示出错信息copy c:\test.txt f: >nul 2>nul不显示"文件复制成功"的提示信息,并且f盘不存在的话,也不显示错误提示信息echo ^^W ^> ^W>c:\test.txt生成的文件内容为^W > W^ 和> 是控制命令,要把它们输出到文件,必须在前面加个^ 符号27 <从文件中获得输入信息,而不是从屏幕上一般用于date time label 等需要等待输入的命令@echo offecho 2005-05-01>temp.txtdate <temp.txtdel temp.txt这样就可以不等待输入直接修改当前日期28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*命令行传递给批处理的参数%0 批处理文件本身%1 第一个参数%9 第九个参数%* 从第一个参数开始的所有参数在C盘根目录新建test.bat,内容如下:@echo offecho %0echo %1echo %2echo %*运行cmd,输入c:\test.bat "/a" /b /c /d可以看出每个参数的含意修改test.bat内容如下@echo offecho %1echo %~1echo %0echo %~f0echo %~d0echo %~p0echo %~n0echo %~x0echo %~s0echo %~a0echo %~t0echo %~z0再运行cmd,输入c:\test.bat "/a" /b /c /d可以参照call/? 或for/? 看出每个参数的含意注意这里可以对文件进行日期比较和大小比较echo load "%%1" "%%2">c:\test.txt生成的文件内容为load "%1" "%2"批处理文件里,用这个格式把命令行参数输出到文件29 if判断命令if "%1"=="/a" echo 第一个参数是/aif /i "%1" equ "/a" echo 第一个参数是/a/i 表示不区分大小写,equ 和== 是一样的,其它运算符参见if/? if exist c:\test.bat echo 存在c:\test.bat文件if not exist c:\windows (echo 不存在c:\windows文件夹rem 有多条命令可用小括号括起来,称为"复合语句"rem 行前的空格是为了看起来条理清楚)if exist c:\test.bat (echo 存在c:\test.bat) else (echo 不存在c:\test.batrem else表示"否则",判断结果为假时执行其后的命令)30 setlocal 和endlocal设置"命令扩展名"和"延缓环境变量扩充"SETLOCAL ENABLEEXTENSIONS #启用"命令扩展名"SETLOCAL DISABLEEXTENSIONS #停用"命令扩展名"SETLOCAL ENABLEDELAYEDEXPANSION #启用"延缓环境变量扩充" SETLOCAL DISABLEDELAYEDEXPANSION #停用"延缓环境变量扩充" ENDLOCAL #恢复到使用SETLOCAL语句以前的状态"命令扩展名"默认为启用"延缓环境变量扩充"默认为停用批处理结束系统会自动恢复默认值可以修改注册表以禁用"命令扩展名",详见cmd /? 。

批处理等待/延迟/暂停时间

批处理等待/延迟/暂停时间

批处理等待/延迟/暂停1、暂停(Pause)、延迟(Delay)、等待(Wait)、睡眠(Sleep)1)for+set+if,时间精度为0.01秒,适用平台为WinNT/2K/XP/2003。

利用for解析变量%time%并存为两个时间点%start%和%now%,再利用set /a计算两个时间点的时间差,最后用if判断时间差是否达到设定的暂停时间。

@echo offsetlocal enableextensionsecho %time%call :ProcDelay 200echo %time%goto :EOF:ProcDelay delayMSec_setlocal enableextensionsfor /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k:_procwaitloopfor /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%kset /a diff_=%now_%-%start_%if %diff_% LSS %1 goto _procwaitloopendlocal & goto :EOF2)VBS脚本中的sleep函数,时间精度为0.001秒,使用平台为Win9x/WinNT系列。

动态创建一个调用sleep()函数的VBS脚本,然后用Windows脚本宿主的命令行版本cscript调用它。

@echo off & setlocal enableextensions enabledelayedexpansionecho WScript.Sleep 2000 > %temp%\tmp$$$.vbsecho %time%cscript //nologo %temp%\tmp$$$.vbsecho %time%for %%f in (%temp%\tmp$$$.vbs) do if exist %%f del %%fendlocal & goto :EOF3)ping的消息发送间隔,时间精度为1秒,使用平台为Win9x/WinNT系列。

写一个bat批处理文件启动windows进程和延时关闭的代码

写一个bat批处理文件启动windows进程和延时关闭的代码

写⼀个bat批处理⽂件启动windows进程和延时关闭的代码前些天领导让我们在⽹站上投票提⾼他的排名,可是每⼈投⼀票才100多票。

过了⼏天领导问我会不会做个刷票程序,提⾼排名,我说可以试试,研究了⼀天,终于做出来了,兴奋的我⼀晚上没睡着。

现在拿出来分享⼀下。

说⽩了我做的其实就是个批处理⽂件,批处理扩展名为.bat,其实那个投票页⾯只是⽤session去控制是否投票,众所周知,session变量在IE关闭后就会⾃动消失,重新打开页⾯时⼜会创建⼀个新的连接,这就可以重复投了,这个页⾯是⽤的AJAX,我找到ajax所在的JS,把它的真正的投票页⾯找出来,把ID通过页⾯传⼊,实现投票。

⽬前要做的就是⾃动打开IE连接投票页,然后⾃动断开,⾃动再连,从⽽实现重复投票。

这个投票⽹站有两个致命点,⼀是投票不进⾏IP控制⽽⽤session服务端控制,导致可以⽤⼀个IP重复投票,⼆是实际投票处理页⾯的参数是通过GET⽅式进⾏传输,这就会导致作弊的可能。

通过利⽤以上两个漏洞,我做也了⼀个bat批处理,如下:复制代码代码如下:@echo offecho 正在关闭冗余进程,请稍等......taskkill /f /im iexplore.exeecho -------------程序初始化完毕,请指⽰!----------echo. & pause:openieecho 正在投票,请稍等......start "" "C:\Program Files\Internet Explorer\iexplore.exe"echo IE打开完成!ping 127.0.0.1 -n 2taskkill /f /im iexplore.exeecho 延时2秒关闭投票完成!goto openieecho. & pause关键点解释:taskkill /f /im iexplore.exe 强制关闭IE进程,当然也可以关闭其它进程,关于进程名,可以通过任务管理器查到。

批处理变量延时

批处理变量延时

而为了能够在for语句内部感知环境变量的动态变化,CMD设计了延迟的环境变量扩展特性,也就是说,当CMD读取了一条完整的语句之后,它不会立即执行变量的扩展行为,而会在某个单条语句执行之前再进行扩展,也就是说,这个扩展行为被“延迟”了。
总的来说是,在没有启用变量延迟的情况下,凡是在括号内(即do里面)的变量,在执行for语句之前,就已经被替换成for语句之前其它命令对该变量所赋予的值。这句话不懂没关系,下面再看一个例子,看完你就会明白。
所以,最后echo %n%的时候变量n还是个空值,而echo命令没有东西可以显示,就只有显示“ECHO 处于关闭状态”这句来说明自己的状态
通过这个例子的说明,相信大家已经知道变量延迟的作用吧!我们再回头来看看例1。
启用变量延迟后,在执行
set n=!n:ld.=t!
set n=!n:o w= S!
这句不用说了吧,执行完这句后n的值为“Will Sort”
7.echo !n!
显示变量n的值
需要注意的是,一旦启用了变量延迟,就要用!号把变量括起来,而不能用%号。
好了,每句的意思已经说完了,下面要讲本帖真正要讨论的变量延迟的问题。
这里又要引用Will Sort老大的说明:当CMD读取for语句时,其后用一对圆括号闭合的所有语句将一同读取,并完成必要的预处理工作,这其中就包括环境变量的扩展,所以在for中的所有语句执行之前,所有的环境变量都已经被替换为for之前所设定的值,从而成为一个字符串常量,而不再是变量。
则是说在本例中的以下几句
set n=%%i
set n=%n:ld.=t%
set n=%n:o w= S%
set n=%n:He=Wi%

dos、bat批处理延时执行命令的两种方法

dos、bat批处理延时执行命令的两种方法

dos、bat批处理延时执⾏命令的两种⽅法来源:vbs⼩铺第⼀种⽅法:ping 127.0.0.1 -n 5000>nuldir c:\ >c:\1.txt延时5分钟后执⾏dir c:\第⼆种⽅法:: Sleep.bat - Sleep/Delay/Wait n seconds:: Herbert Kleebauer(Germany) - 2005/05/29:: Modified by Will Sort - 2005/06/02@echo offecho q | debug>nulecho Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>> echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>> echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>> echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>> echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>>sleep.exedel echo wait 2 seconds:sleep.exe 2000。

cmd 延迟参数

cmd 延迟参数

cmd 延迟参数
如果你想在命令提示符(CMD)中延迟执行参数,你可以使用`timeout`命令或`ping`命令的方式来引入一些延迟。

以下是两种方法的示例:
使用`timeout` 命令:
```batch
@echo off
echo Doing something before the delay...
timeout /t 5 /nobreak > nul
echo Doing something after the delay...
```
上述示例中,`timeout /t 5` 表示延迟5 秒。

`/nobreak` 参数用于防止用户按下任意键终止延迟。

`> nul` 用于将`timeout` 命令的输出重定向到空设备,以避免在屏幕上显示倒计时信息。

使用`ping` 命令:
```batch
@echo off
echo Doing something before the delay...
ping -n 6 127.0.0.1 > nul
echo Doing something after the delay...
```
在这个示例中,`ping -n 6 127.0.0.1` 会引入一个大约5 秒的延迟。

`-n 6` 表示发送6 个数据包,每个数据包之间会有一定的延迟。

`> nul` 同样用于将输出重定向到空设备。

请注意,这些方法都不是精确的定时器,实际的延迟可能会受到系统性能等因素的影响。

选择使用哪种方法取决于你的具体需求和环境。

[重点]批处理中setlocalenabledelayedexpansion的含义

[重点]批处理中setlocalenabledelayedexpansion的含义

批处理中setlocal enabledelayedexpansion的含义批处理中setlocal enabledelayedexpansion的含义setlocal enabledelayedexpansion延迟变量全称"延迟环境变量扩展",要理解这个东西,我们还得先理解一下什么叫扩展!CMD在解释我们的命令的时候,首先会读取命令行一条完整的命令,然后对其进行一些命令格式的匹配操作,看你所输入的命令格式是不是符合他的要求.如果我们要在我们的命令中引用一些变量,那么我们如何让CMD在解释我们的命令时,能识别出这个变量呢?这时我们就可以在变量名字两边加一个%号,如%name%.当CMD在对读取我们的整行命令进行格式匹配的时候,就会发现name这个字符两边加了%号,就不会把他当作普通字符处理,而是会把他当作一个变量处理,变量名叫name!然后CMD就会找到变量名对应的值,用变量名的值替换掉这个变量名字(name),(如果变量名不存在值,就返回空值).再将这个替换好并且匹配的命令执行!这个替换值的过程,就叫做变量扩展,说白了就是把变量的名字,用他的值给替换掉后执行!也就是批处理如何识别一个变量的过程.(注意:这里只是变量的扩展的意思,不是延迟环境变量扩展,要理解延迟环境变量扩展,必须先理解什么是变量的扩展) 也就是批处理如何识别一个变量的过程. ~_~例如这个一个BATset var=testecho %var%CMD在读取到echo %var%这句命令后,就会进行匹配操作,它马上就发现var字符两边有%号,这时他就会把他当作一个变量处理,查看这个var变量名是不是有值,如果有就用他的值把变量名var给替换掉,这里我们的VAR在上一条命令set var=test中,给var赋值为test,所以他会用test把%var%这个变量名替换掉,替换后的结果就为echo test了.这些步骤都是CMD进行匹配操作的步骤,匹配完后,他再执行echo test这条语句,这时我们的CMD中就会echo出一个test了.什么是环境变量扩展知道了,那什么是延迟环境变量扩展呢?在理解环境变量扩展时,我们知道CMD在解释命令时,首先会把一条完整的命令进行读取,然后进行匹配操作,匹配时他会把命令里的变量用变量的值个替换掉,然后执行这个替换好的命令.问题就出在"一条完整的命令",在BAT中,IF FOR这样的命令都可以加括号,将一些命令嵌套在里面执行.这样的话对于一条可以加扩号嵌其他命令的命令,他的完整格式就是for %%i in (....)这样一个整体.此时,如果我们如果在括号里面嵌入一些设置变量值的命令,就会出现问题了!看例子@echo offfor /l %%i in (1,1,5) do (set var=%%iecho %var%)按理说执行结果应该是12345但执行后却显示5个空行的错误提示!为什么?根据我们上面说的知识来理解@echo offset var=testfor /l %%i in (1,1,5) do (set var=%%iecho %var%)这个就会打印5个test了,说明 for /l %%i in (1,1,5) 没有起作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档