Window 命令行与bat批处理文件总结

命令行

显示如何使用命令: /?

find /?  (find 命令的作用)

echo 打印输出

echo 内容 (与log类似)
echo on/off  (开启/关闭回显)
echo off 内容 pause

echo 内容 >> test.txt  在test文件中写入内容 

@echo off 内容 pause (暂停)

@ 符号 表示@后的命令不显示

进入目录: cd 

cd 内容 (path路径,进入到对应文件夹下,如果不是当前盘符,需要执行 盘符: (e:))
cd..  (进入父目录)
cd /d e:(cd /d 盘符名称: 进入某一个盘符)

文件夹信息:dir 

dir (显示当前文件夹下的文件夹和文件名称,包含文件信息)
dir /b(只显示当前文件夹下的文件夹和文件名称)
dir /p (分页显示当前目录中的子文件夹与文件)
dir /ad (显示当前目录中的文件)
dir path (显示path文件夹下的文件信息)

显示文件夹目录结构:tree

tree (显示当前文件夹目录结构)

tree 路径 (显示对应文件夹里的目录结构)

创建目录: md

md 文件夹名

md 文件夹路径

删除目录: rd

rd 文件夹名/文件夹路径
rd 文件夹名 /s /q (删除当前目录中的文件夹包括子目录和子文件 /s 表示删除子文件夹与子文件 /q 表示不需要删除请求 安静模式)

拷贝: copy

copy test.txt e:\ (将text.txt 文件拷贝到e盘目录下)

coyp test.txt 路径 文件名 (将文件拷贝到对应路径下,并且重命名)

copy /y test.txt e:\   (将文件拷贝到对应路径下  /y 不询问是否覆盖)

copy 文件夹名称  文件夹路径 (拷贝文件夹下的文件到目标路径(不递归子目录))

copy /y 文件夹名称 文件夹路径

更强大的拷贝: xcopy

xcopy 文件夹路径 目标文件夹路径    (拷贝文件夹下的文件到对应目录 不包含子目录)

xcopy 文件夹路径 目标文件夹路径 /s (拷贝文件夹,包含子目录)

xcopy 文件夹路径 目标文件夹路径  /d:月-日-年 /s  /y(将文件夹里的某个时间改变之后的文件拷贝到目标路径)

移动文件: move

move 文件名称 文件路径

move *.txt 文件夹路径 (移动所有后缀为txt的文件到指定路径下 )

move 文件夹 目标文件夹

删除文件 del

del 文件夹 (删除当前目录下的文件夹中的所有文件 非只读文件)

del /f 文件夹 (删除当前目录下的文件夹中的所有文件 包括只读文件)

替换文件 replace

replace e:\work\测试.txt  e:\q (使用 e:\work\测试.txt 去替换 e盘下面q文件夹下的 测试.txt)

bat 批处理相关

@echo off
title TestBat    (窗口标题)
color 2          (字体颜色)
mode con cols=100 lines=20                (cols 宽 lines 高)
pause

显示文本内容: type

在文件中搜索字符串:find

注释 rem

if goto 使用

@echo off
if "%1"=="bb" goto A
echo 不相等
pause
:A
echo 相等
pause

if else

 @echo off
if "%1"=="bb" (
echo 相等
) else (
echo 不相等
)
pause

注意括号空格与位置

@echo off
if exist test.bat (
echo 存在test.bat文件
) else (
echo 不存在test.bat文件
)
pause

 exist 文件是否存在

call 调用其他的.bat文件 或者 .cmd文件

@echo off
echo 调用test.bat
call test.bat

start 启动一个程序

start "E:\Steam\Steam.exe"

choice 指定创建的选项表

@echo off
choice /c ync /m "确认Y否N,取消C"
if errorlevel 3 goto C
if errorlevel 2 goto N
if errorlevel 1 goto Y

:C
echo 取消
pause

:N
echo 否
pause

:Y
echo 确认
pause

for循环

  • cmd 窗口:for %i in (command1) do command2 (引用变量为%i)
  • bat  窗口: for %%i in (command1) do command2 (引用变量为%%i)
  • /L 控制循环次数
  • /F 输出文件

@echo off
for %%i in (a b c) do echo %%i
pause

从1 开始每次加2 不超过10

@echo off
for /L %%i in (1 2 10) do echo %%i
pause

 @echo off
for /F "delims=;" %%i in (test.bat) do echo %%i
pause

delims=; 每一行已;为分割符

时间: date time

@echo off
date
echo %date:~0,4% 年
echo %date:~5,2% 月
echo %date:~8,2% 日
set t=%date:~0,4%
echo %t% 年
time
echo %time:~0,4% 时
echo %time:~3,2% 分
echo %time:~6,2% 秒
pause

set 赋值   %t% 取值  

字符串操作

@echo off
set t=测试字符串截取
echo %t:~0,2%
echo 字符串替换
echo 替换前:%t%
set t=%t:截取=替换%
echo 替换后:%t%
pause

%~f1 将%1扩充到一个完全合格的路径名
%~d1 仅将%1扩充到一个驱动器号
%~p1 仅将%1扩充到一个路径
%~n1 仅将%1扩充到一个文件名
%~x1 仅将%1扩充到一个文件扩展名
%~s1 扩充的路径只含有短名
%~a1 仅将%1扩充到文件的文件属性
%~t1 仅将%1扩充到文件的日期/时间
%~z1 仅将%1扩充到文件的大小
%~dp1 仅将%1扩充到一个驱动器号和路径
%~nx1 仅将%1扩充到一个文件名和扩展名

猜你喜欢

转载自blog.csdn.net/weixin_41316824/article/details/129654243
今日推荐