#查看当前是哪个登录用户
whoami /user
#host文件位置
C:WindowsSystem32driversetc
#查看命令所在位置
where java
#获取系统信息
systeminfo
#创建目录
md/mkdir cjh
#创建空文件
echo "">cjh.txt
#删除目录及文件
rd /s/q 盘符:某个文件夹 (强制删除文件文件夹和文件夹内所有文件)
del /f/s/q 盘符:文件名 (强制删除文件,文件名必须加文件后缀名)
#ipv4设置优先级
https://blog.csdn.net/ambertian/article/details/70238020
#call与start区别
call 同步
start 异步
echo. 作用是换行
& 连接符 不论前面的命令是否成功执行 后面的命令都将执行
&& 连接符 仅当前面的命令成功执行时 后面的命令才会被执行
|| 连接符 连接两个命令 仅当前面的命令执行失败时 后面的命令才会被执行
| 传递符 echo wind|find "w"
^ 转义符 [脱字符]
脱去特殊符号的作用 使之成为一个纯粹的符号
echo ^&
%两个百分号表示取值
set wind=smile
echo wind的值为 %wind%
如果要输出一个百分号则在批处理中要写成两个
*通配作用
[删除所有文本文件] del *.txt
@ #关闭命令本身回显
echo off #从下一行开始关闭回显(全局的)
@echo off #从本行开始关闭回显。一般批处理第一行都是这个
echo on #从下一行开始打开回显
echo #显示当前是 echo off 状态还是 echo on 状态
%~nx0 程序的名称+扩展名
call "%~f0" %* <"%TEMP%\%~nx0.Y"
"%~f0" : 简单说就是表示当前命令的绝对路径.
"%*" : 我们知道 %1 表示第一个参数, 依次类推, %2 表示第二个.... 那么%*代表所有参数.
%ERRORLEVEL% 就是取的上面的 call 命令的退出码
%0 当前脚本绝对路径
del /Q "%TEMP%\%~nx0.Y" >NUL 2>&1
/Q 静默删除, 不会给你任何提示
>NUL : 表示将输出重定向到 NUL 中,你什么也看不到
2>&1 : 2:错误输出, &1: 标准输出, 意思就是将错误消息输出到标准输出中.
- >NUL 2>&1 : 就是先将错误消息输出到标准输出中, 然后再输出到 NUL 中.
exit /B %RETVAL%
退出当前批处理, /B 指定退出时的编号, 把 RETVAL 最为 退出码, 也就是 call 执行的命令的退出码.
判断CATALINA_HOME 环境变量的值 CATALINA_BASE 环境变量的值是否以 分号为结尾
"%CATALINA_BASE%" == "%CATALINA_BASE:;=%"
#遍历
forfiles /p ".db_backup" /m kintech_pd_backup_*.sql /d -7 /c "cmd /c del /f @path"
/p pathname 表示开始搜索的路径
/m searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*'
/d date 上次修改日期
/c command 表示为每个文件执行的命令
for %%c in (*.bat *.txt) do type %%c
#获取日期
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%"
%date:~0,4% 截取日期变量从第一位开始截取4位
type 显示文件内容
系统中所加载的设备
mem/d | find "device" /i
#根据提示操作
choice 使用此命令可以让用户输入一个字符(用于选择),
choice /C dme /M "defrag,mem,end"
if errorlevel 1 goto defrag
if errorlevel 2 goto mem
if errorlevel 3 goto end
:defrag
pause
goto end
:mem
mem
goto end
:end
echo good bye
#复制
XCOPY C:/AUTOEXEC.BAT D:/
COPY C:/AUTOEXEC.BAT D:/
为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。
如:if [%1]==[A] 或者 if %1*==A*