批处理命令

本文详细介绍了DOS下的各种实用命令,包括mode、MD、CD、RD、DIR、PATH、TREE等,以及如何使用批处理进行变量操作、文件读取和删除。通过实例演示了如何设置和拼接变量,读取文件内容,并删除指定文件夹下的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mode命令:

示例一:改变DOS窗口的尺寸:mode con cols=100 lines=40则DOS窗口的尺寸将会变为40行100列的
  
示例二:让DOS下显示的语言为美式英语,mode con cp select=437 (简体中文936)

示例三:改变键盘速度及键盘延迟,mode con rate=40 delay=2 (默认:rate=31 delay=1)

示例四: 查看命令行 行列参数、键盘速度、键盘延迟数及代码页是多少,则输入:mode con

(一)MD——建立子目录

例:(1)在C盘的根目录下创建名为FOX的子目录;md fox (2)在FOX子目录下再创建user子目录。md fox\user

(二)CD——改变当前目录
例:(1)进入到USER子目录;cd fox\user(2)从USER子目录退回到子目录;cd .(3)返回到根目录。cd \

(三)RD——删除子目录命令
第一步:先将USER子目录下的文件删空;del fox\user\*   第二步,删除USER子目录。rd fox\user

(四)DIR——显示磁盘目录命令 

(五)PATH——路径设置命令

(六)TREE——显示磁盘目录结构命令

(七)del——删除整个文件夹下的文件

 

CMD获取当前目录的绝对路径

@echo off
echo 当前盘符:%~d0
echo 当前盘符和路径:%~dp0
echo 当前批处理全路径:%~f0
echo 当前盘符和路径的短文件名格式:%~sdp0
echo 当前CMD默认目录:%cd%
echo 目录中有空格也可以加入""避免找不到路径
echo 当前盘符:"%~d0"
echo 当前盘符和路径:"%~dp0"
echo 当前批处理全路径:"%~f0"
echo 当前盘符和路径的短文件名格式:"%~sdp0"
echo 当前CMD默认目录:"%cd%"
pause

 

.bat批处理(三):变量声明、设置、拼接、截取

  1. @echo off

  2.  
  3. ::设置变量

  4. SET Sender1=%1

  5. SET Sender2=%2

  6. SET Receiver=%3

  7. SET Content=%4

  8.  
  9. ::字符串拼接

  10. SET Sender = %Sender1%, %Sender2%

  11. ::字符串截取

  12. SET RealContent=%Content:~1,-1%

  13.  
  14. echo Sender = %Sender%

  15. echo ---------------------------------/

  16. echo Receiver = %Receiver%

  17. echo ---------------------------------/

  18. echo Content = %Content%

  19. echo ---------------------------------/

  20. echo RealContent = %RealContent%

  21. echo ---------------------------------/

  22.  
  23.  
  • 运行结果如下:

F:\batTool>test_set.bat tom jerry xiaoming "I miss you" 
Sender = tom, jerry 
———————————/ 
Receiver = xiaoming 
———————————/ 
Content = “I miss you” 
———————————/ 
RealContent = I miss you 
———————————/ 

总结

  • 这其中有几个点需要注意,首先变量设置只需要使用SET 任意变量名=所要表达的内容;
  • 变量的拼接只要把变量依次写在一起就可以,形如SET 变量=变量1变量2 内容3,字符串4,不同部分之间可以没有连接符,直接相连或者用空格。
  • 变量的截取需要使用固定的格式%变量:~a,b%,这就表示把变量从第a个字符截取到第b个字符,b可以为负数,表示从字符串后面计数,-1表示最后一个字符。
  • 关于例子中信息内容这最后一个参数,其中的双引号使我故意加的,也是非常必要的,这样可以把这句包含空格的话作为一个变量传递到批处理脚本中,如果不加双引号的话,变量Content的内容就是I了,后两个单词就被丢掉了。

find "要查询的字符串" 要查询文件的路径

  1. FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]

  2. /V 显示所有未包含指定字符串的行。

  3. /C 仅显示包含字符串的行数。

  4. /N 显示行号。

  5. /I 搜索字符串时忽略大小写。

  6. /OFF[LINE] 不要跳过具有脱机属性集的文件。

  7. "string" 指定要搜索的文本字符串。

  8. [drive:][path]filename

  9. 指定要搜索的文件

find "123" d:\1.txt

ipconfig |find /I "ipv4"

bat读取文件

@echo off
rem bat命令读取文件示例
 
rem 判断文件是否存在
if not exist versions.txt (
  echo versions.txt file not exist
  goto end
)
 
rem 读取文件,每次读取一行,默认以空格分隔,默认取第一列
for /f %%i in ('type versions.txt') do (
  echo %%i
)
 
rem tokens用来指定获取的列数
rem tokens=1-2,表示取第1列到第2列的内容
rem tokens=1,2,表示取第1列和第2列的内容
rem tokens=*,表示取整行
for /f "tokens=*" %%i in ('type versions.txt') do (
  echo %%i
)
 
for /f "tokens=1-2" %%i in ('type versions.txt') do (
  echo %%i %%j
)
 
rem 修改分隔符为.号
rem delims=.-,表示以.或者-分隔
for /f "delims=." %%i in ('type versions.txt') do (
  echo %%i
)
 
:end
echo Press any key to continue
pause

批处理bat 删除指定文件夹下的文件及文件夹

1.针对仅仅是删除文件夹下的文件的操作:

使用del命令,单纯的删除文件操作,如下:

del /f /s /q C:\Users\dell\AppData\Local\Temp\*.*
  •  

2.删除文件夹操作
使用rd命令,删除空文件夹,如下:
rd /s /q C:\Users\dell\AppData\Local\Temp\A

3.删除文件和文件夹操作:
使用的是del命令+rd命令,先删除文件,在进入相应文件夹删除文件夹下的文件夹,如下:

del /f /s /q C:\Users\dell\AppData\Local\Temp\*.*
cd C:\Users\dell\AppData\Local\Temp
rd /s /q  C:\Users\dell\AppData\Local\Temp
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值