❶ cmd脚本详解
REM 关闭回显,并把cmd窗口背景色设为黑色,文字为淡绿色
@echo off & color 0a
REM 在窗口中显示输入提示,当被用户输入并回车后,把用户输入的内容赋到 ff 这个变量名上
set /p ff=输入文件名:
REM cmd窗口标题显示为指定内容
title 查找%ff%
REM 在窗口中显示一个空行,并显示输入提示。不过此时因为使用到了<nul 参数,
REM 所以此提示不需要等待用户输入。这里的用处纯粹就是起到显示一句提示而已。
echo. & set /p=正在查找 <nul
REM 使用for列出括号内的字符串
for %%i in (c d e f g h) do (
REM 判断上面给定盘符是否存在。如果存在就执行下一步操作
if exist %%i:\(
REM 跳转到对应的盘符分区中
cd /d %%i:\
REM 显示输入提示,这里只是起到一个显示盘符的功能而已
set /p=%%i: <nul
REM 使用dir命令列出文件名为之前ff变量赋予的值的相关文件,
REM 并使用for命令进行循环执行后续操作
for /f "delims=" %%j in ('dir /b/a-d/s "%ff%" 2^>nul') do(
REM 显示一个空行,并显示一句指定的提示
echo. & echo 在%%~fj找到%ff%,准备启动它,并退出本批处理...
REM 使用ping命令去ping 127.1这个地址三次。这样的写法就是实现等待3秒的效果,
REM 不过这种延时等待的效果可能会有误差,
REM 如果是Vista及其以上的系统推荐使用timeout命令来实现延时等待。
ping -n 3 127.1>nul
REM 启动找到的相关文件,并退出脚本
start "" "%%j" & exit/b
)
)
)
REM 显示一个空行,并显示一句指定的提示
echo, & echo 未发现 %ff% 按任意键退出...
REM 暂停脚本,
pause>nul
❷ Windows cmd(bat) 脚本简介
命令提示符是在 操作系统 中,提示进行命令输入的一种工作提示符。在不同的操作系统环境下,命令提示符各不相同。在 windows 环境下,命令行程序为 cmd.exe,微软 Windows 系统基于 Windows 上的命令解释程序,类似于微软的 DOS 操作系统 。
四种文件类别
命令不区分大小写
在 Windows 系统中,所有的文件夹或者文件名、环境变量、命令都是 不区分大小写 。据说但是是为了兼容 DOS,才没有区分大小写,后续就一直不区分了。
查看 windows 版本
winver
打开注册表
regedit
打开计算器
calc
打开绘图
mspaint
打开记事本
notepad
打开写字板
wordpad
打开控制面板
control
打开远程桌面 (Microsoft terminal services client)
mstsc
打开或关闭 Windows 功能
optionalfeatures
服务管理
services.msc
系统配置
msconfig.exe
防火墙
firewall.cpl
卸载或更改程序
appwiz.cpl
打开计算机管理
compmgmt.msc
打开电源选项
powercfg.cpl
打开 internet 选项
inetcpl.cpl
系统属性
sysdm.cpl
显示设置
desk.cpl
证书管理
certmgr.msc
添加硬件
hdwwiz.exe
关机
shutdown
dir
cd
tree
显示目录结构
tree d: #显示D盘的文件目录结构
日期和时间
文件/文件夹的重命名
复制文件
删除文件是不经过回收站
删除空文件夹
rmdir(rd):删除非空文件夹且需要进行确认
删除非空文件夹且不需要进行确认
重命名文件或者文件夹。(尽管引号不是强制性的,但如果当前名称或新名称中都有空格)
清屏
cls
显示文件内容
type
网址/域名 :检查当前网址是否连通 (注:会返回当前网址对应的IP地址和网络状态)
ping
方法一:使用 ↑↓ 箭头上下翻看执行过的命令,此方式适宜执行命令较少的情况;
方法二:使用快捷键:
F7: 快捷键查看所有执行过的命令
F3:调出上一条执行过的命令,调出后直接回车即可执行;
F8:搜索命令历史记录,和↑向上箭头类似。
F9:按编号选择命令,来调出执行过的命令:
方法三:doskey /HISTORY 显示保存在内存中的所有命令
可搭配 more、findstr 命令进行使用:
doskey /HISTORY | more
doskey /HISTORY | findstr dir
doskey /HISTORY > d:123.txt 重定向到文件
后缀一般存储为 bat, cmd 格式的文件。
创建文件:建议右键-新建文本文档。建议选择 gbk 中文编码,换行选择 。示例中我将文件存储为 hello.bat。
使用方法:双击使用或在命令提示符中键入文件名。
设置 cmd 窗口的标题
输出到屏幕
将参数1,参数2 输入到命令行
hello.bat aaa bbb
说明:
%0 批处理文件本身
%1 第一个参数
...
%9 第九个参数
pause 就是暂停命令
pause > null 的作用是同样的,区别是不显示“请按任意键继续. . .”这些字,nul 相当于空设备。
定义变量,注意等号左右不能加空格。
在批处理中 > 和 < 为重定向符号,这就意味着我们不能用 > 来表示大于,< 表示小于,也就意味着不能用 >=、<=、<> 来表示大于等于、小于等于、不等于,还好,在批处理中用了其他的操作符代替它们,这在"if /?"中有说明:
引用内容 引用内容
1. &
顺序执行多条命令,而不管命令是否执行成功
2. &&
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
如果找到了"ok"字样,就显示"成功",找不到就不显示
3. ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
如果找不到"ok"字样,就显示"不成功",找到了就不显示
5. 输出重定向命令
> 清除文件中原有的内容后再写入
>> 追加内容到文件末尾,而不会清除原有的内容
6. 管道操作符 |
clip 将内容复制到剪切板
dir 组合 clip 的用法示例
start 可以打开文件夹,文件,网址等
if 关键字和语句
1、if [NOT]"参数" == "字符串"
2、if [NOT] exist 文件名 待执行的命令
3、if [NOT] errorlevel 数字 待执行的命令
如果返回码大于或者等于(或者小于,使用NOT)指定的数字,则条件成立,运行命令,否则运行下一句。DOS 程序运行时都会返回一个数字给 DOS,称为错误码 errorlevel 或称返回码。默认值为 0,一般命令执行出错会设 errorlevel 为1。数字取值范围 0~255。判断时值的排列顺序应该由大到小,否则会出现非期望的结果。
示例1:if 搭配 exist 进行使用,用于判断某文件是否存在
原来的环境变量后加上英文状态下的分号和路径
set PATH=%PATH%;C:UserszhangsanDocumentswinrar-x64-580
setx PATH "%PATH%;D:Program Files"
该语句表示添加到用户环境变量, 设置后对当前窗口不生效, 后续窗口都生效了.
(建议执行一次, 防止多试重复添加, 该威力巨大.
目前不知道怎么删除单项环境变量, 只能采取重新赋值的方式)
键入 "SETX /?" 了解用法信息。
切记:每个指令之间必须以空格隔开,in 与 ( 之间有空格,do 与 ( 间也有空格,否则命令会无法成功执行
[ ]:表示此项指令为可选
[参数]:参数取值一共有四种: /d, /r, /l, /f,加上无参数,所以一共五种场景
无参:遍历当前路径的文件夹下的文件,但也可在(匹配符)中指定路径
批处理脚本遍历指定文件夹下的文件_RuncX的技术博客_51CTO博客
https://blog.51cto.com/runcx/2465152
C:Usersferder>echo %date%
2022/07/02 周六
C:Usersferder>echo %time%
20:19:37.09
因此
提取年 %date:~0,4% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2014
提取月 %date:~5,2%
提取日 %date:~8,2%
同理提取时间的时分秒为 %time:~0,2%%time:~3,2%%time:~6,2%
实战操作:
md %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
则是再当前目录下创建一个空的文件夹。
DOS 批处理中的字符串处理详解(字符串截取)
https://blog.csdn.net/xiaoding133/article/details/39253083