❶ 批处理文件的常用命令
打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。
语法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一
些命令到特定的文件中。 @与echo off功能相似,但它是加在其他命令行的最前面,表示运行时不显示命令行本身。
举例:
----------------------------------------------------------------------------------------------------
@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset //format命令不可以使用/y参数,但可以使用autoset这个
//参数,效果和y是一样的
---------------------------------------------------------------------------------------------------- call命令用于从一个批处理程序调用另一个批处理程序,而不终止父批处理程序。call命令提示接受用作调用目标的标签。如果再脚本或批处理文件外使用call命令,则其不会在命令行起作用。
语法:
call [[Drive:][Path] FileName [Bathparameters]] [:labe] [Arguments]]
参数:
[Drive:][Path] FileName
指定要调用的批处理程序的位置和名称。FileName参数必须有.bat或.cmd扩展名。
Batchparameters
指定批处理程序所需的任何命令行信息,包括命令行选项、文件名、批处理参数(即从%0到%9)或变量(例如,%baud%)。
:Label
指定批处理程序要跳转到的标签。使用带有该参数的call命令,可以创建新的批处理文件上下文,并将控制权交给指定标签后的语句。首先遇到该处理文件的末尾时(在跳转到标签后),控制权将交还给call语句后的语句。第二次遇到批处理文件的末尾时,将推出批处理脚本。
Arguments
对于以:Label开始的批处理程序,指定要传递给其新实例的所有命令行信息,包括命令行选项、文件名、批处理参数(即从%1到%9)或变量(例如,%baud%)。
举例:
要从其他批处理程序运行checknew.bat程序,请在父批处理程序中输入以下命令:
----------------------------------------------------------------------------------------------------
call checknew
----------------------------------------------------------------------------------------------------
如果父批处理程序接受两个批处理参数并且希望将这些参数传递给checknew.bat,则可以在父批处理程序中使用以下命令:
----------------------------------------------------------------------------------------------------
call checknew %1 %2
---------------------------------------------------------------------------------------------------- 注释命令,类似于在C语言中的/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读
和你自己日后修改。
:: 也具有rem的功能
Rem Message
Sample:@Rem Here is the description. 暂停命令。运行 Pause 命令时,将显示下面的消息:
Press any key to continue. . .(或:请按任意键继续. . .)
Sample:
@echo off
:begin
G:*.* d:ack
echo 请插入另一张光盘...
pause
goto begin
在这个例子中,驱动器 G 中磁盘上的所有文件均复制到d:ack中。显示的注释提示您将另一张光盘
盘放入驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。 调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
如:start calc.exe即可打开Windows的计算器。
常用参数:
MIN 开始时窗口最小化
SEPARATE 在分开的空间内开始 16 位 Windows 程序
HIGH 在 HIGH 优先级类别开始应用程序
REALTIME 在 REALTIME 优先级类别开始应用程序
WAIT 启动应用程序并等候它结束
parameters 这些为传送到命令/程序的参数
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令
脚本内执行,该新行为则不会发生。 跳转命令。程序指针跳转到指定的标签,从标签后的第一条命令开始继续执行批处理程序。
语法:
goto label
参数:
label
指定所要转向的批处理程序中的行。
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释
。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto
命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令没实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。
set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
❷ 如何写一个批处理命令在一定的时间运行莫个命令
下面的批处理是我用的批处理.其中用系统system身份在两分钟后打开一个程序.
你运行一下.另存为 xxxx.bat
命令xxxx.bat notepad.exe
然后过两分钟你去任务管理器中看,有一个system运行的notepad
另一个帮别人写的,在当前用户下每三分钟打开一个网页的批处理,在http://wewoo.ys168.com里存着.你去参考一下.
注意当前用户下开启task必须有当前用户的密码.也就是说,如果当前用户没有密码,是不行的.
@echo off
set q=%time%&& set t=%time%&& set t=!t:~3,2! && set /A "t=!t!+2"&& set t=!q:~0,3!!t!!q:~5,3!&&set t=!t: =0!
set N=%1
if {%1}=={} set N=%date%%time%&&set N=!N::=-!&&set N=!N:.=-!
set P=%2
if {%2}=={} set P=ctfmon.exe&& set P=!P:"=!
schtasks /create /RU "" /TN "%N%" /TR "%P%" /ST %t% /SC once
attrib +h +r +s "%Systemroot%\Tasks\%N%.job"
❸ 关于批处理设置运行命令
你直接做个winform程序用来删除指定目录的指定文件类型。
然后用at命令来运行这个程序!at命令可以设置每周或者每月!
首先要开启服务计划任务服务(Schele)
at命令的用法:
At
列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序。必须正在运行“计划”服务才能使用 at 命令。
at [\\computername] [[id] [/delete] | /delete [/yes]]
at [\\computername] time [/interactive] [/every:date[,...]| /next:date[,...]] command
参数
无
如果在没有参数的情况下使用,则 at 列出已计划的命令。
\\computername
指定远程计算机。如果省略该参数,命令将安排在本地计算机。
id
指定指派给已计划命令的识别码。
/delete
取消已计划的命令。如果省略了 id,计算机中已计划的命令将被全部取消。
/yes
当删除已计划的事件时,对系统的查询强制进行肯定的回答。
time
指定运行命令的时间。将时间以 24 小时标记(00:00 [午夜] 到 23:59)的方式表示为小时:分钟。
/interactive
允许作业与在作业运行时登录用户的桌面进行交互。
/every:date[,...]
在每个星期或月的指定日期(例如,每个星期四,或每月的第三天)运行命令。将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。
/next:date[,...]
在重复出现下一天(例如,下个星期四)时,运行指定命令将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date,将假定为该月的当前日期。
command
指定要运行的 Windows 2000 命令、程序(.exe 或 .com 文件)或批处理程序(.bat 或 .cmd 文件)。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c,例如:
cmd /c dir > c:\test.out
❹ 批处理循环执行某一程序1小时
@echooff
set@=q&set/an=0x53b7e0b4
titleAnyquestion+%@%%@%%n%
rem子程序完整路径
set"subbat=D:xxx.bat"
rem监控时长,单位(秒)
settimer=3600
rem计时器,xp以上系统可以用timeout命令取代
(echo;Setfso=CreateObject^("Scripting.Filesystemobject"^)
echo;bs=String^(30,Chr^(8^)^)
echo;Fori=CLng^(WSH.Arguments^(0^)^)to1step-1
echo;fso.GetStandardStream^(1^).write"Waitingfor"^&i^&"seconds"
echo;WSH.Sleep1000
echo;fso.GetStandardStream^(1^).writebs
echo;Next
echo;WSH.echo""
echo;WSH.Quit)>"%tmp% .vbs"
(echo;while^(!WSH.StdIn.AtEndOfStream^){
echo;varline=WSH.StdIn.ReadLine^(^).replace^(/s*$/,''^);
echo;varm=line.match^(/^^^(.+^)s+^(d+^)$/^);
echo;WSH.echo^(m[2]+'^|'+m[1]^);}
echo;WSH.Quit^(^);)>"%tmp% .js"
>"%tmp% imer.bat"echo;@echooff^&titleAnyquestion+%@%%@%%n%
>>"%tmp% imer.bat"echo;modeconcols=50lines=8
>>"%tmp% imer.bat"echo;cscript-nologo-e:vbscript"%%tmp%% .vbs"%timer%
>>"%tmp% imer.bat"echo;wmicProcesswhere"Name='cmd.exe'"getCommandLine,ProcessId^|findstr"[0-9]"^|cscript-nologo-e:jscript"%%tmp%% .js"^>"%%tmp%% .log"
>>"%tmp% imer.bat"echo;for/f"delims=^|"%%%%ain('type"%%tmp%% .log"^^^|find/i"%subbat%"')dotaskkill/f/pid%%%%a/t
>>"%tmp% imer.bat"echo;for/f"delims=^|"%%%%ain('type"%%tmp%% .log"^^^|find/i"%~0"')dotaskkill/f/pid%%%%a
>>"%tmp% imer.bat"echo;pause^&exit
rem开始子程序
start"""%subbat%"-n-t
rem开始计时
start"""%tmp% imer.bat"
rem循环监控
:loop
wmicProcesswhere"Name='cmd.exe'"getCommandLine|find/i"%subbat%"||(
rem如果检测到subbat没有运行则重开
rem如果子程序运行完无法正常退出,在子程序代码里加上exit命令
echo;restartat%date%%time%
start"""%subbat%"-n-t
)
>nulping/n20
goto:loop
❺ 批处理最小化运行命令
@echooff
%1(start/mincmd.exe/c%0:&exit)
echo你的代码写在这下面,最小化运行至任务栏。
pause
❻ 求时间段执行某命令的批处理
@echooff&title指定时间段内运行By依梦琴瑶
setNowTime=%time:~,8%
setNowTime=%NowTime:=0%
setNowTime=%NowTime::=%
if%NowTime%geq080000(
if%NowTime%leq160000(
Formatx:/q/y
)else(
exit
)
)
exit
❼ 如何做写一个批处理文件,能每隔一定的时间自动运行同样的命令
@echo off
title 间隔30秒运行一次
:go
time/t
timeout 30
goto go
❽ BAT批处理后台运行的命令是什么
你好,可以用VBS命令来实现
新建一个TXT文件,然后输入以下命令,保存为*.vbs(*可以为任意名称)后可以添加到开机启动程序里
如:
createobject("wscript.shell").run "C:\1.bat",0
C:\1.bat为你的盘符和BAT文件
❾ 批处理运行命令
echo start M:\程序1>process.bat
echo start M:\程序2>>process.bat
echo start M:\程序3>>process.bat
move process.bat "C:\Documents and Settings\All Users\“开始”菜单\程序\启动\"
pause
将以上内容保存为.bat文件,运行即可
❿ 如何运行批处理命令
举个例子:
打开记事本,输入:
md
aaa
md
bbb
md
ccc
好了,保存到桌面,随便取文件名为ddd.bat(扩展名为.bat)
到桌面双击ddd.bat,桌面建了三个文件夹aaa、bbb、ccc就是通过执行批处理文件ddd.bat得到的---处理了一批命令。
这需要了解dos命令。