【Cmd】批处理

本文深入探讨批处理脚本的功能与应用,包括注释、命令调用、重定向、管道等,通过实例展示了批处理脚本在不同场景下的强大能力。

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

小续

看了下时间,10年写的了

批处理是个很强大的东西,现在任何一个工具都包含这个功能,只是被工具给封闭起来了

怀念下dos时代的批处理啊

rem即高级语言中的注释的意思,能看懂每个程序的作用了吧


 

@echo off

rem …………………call命令的应用

type a.txt

call c.bat

echo 现在调用xx后面的

call :xx

dir a.txt

:xx

echo dir a.txt没有执行

 


 

@echo off

rem …………………start命令的应用

start "a.txt" /wait dir a.txt

echo 已经从新命令窗口返回

 


echo 下面的注释没有显示出来

rem …………………注释命令的应用@echo off

rem 这个是注释命令

start "a.txt" /wait dir a.txt

 


@echo off

rem  …………………shift命令的应用@echo off

:round

if "%1"=="" goto end

echo %1内容如下:

type %1

echo.

shift

goto round

:end

rem shift命令   设置批处理从第N个参数开始移位,N的值是0至8

rem 符号%0至%9专用于批处理从命令行获得的参数,一次代表命令行输入的相应参数,即输入的参数

rem 输入后面要带上相应的a.txt或者更多………………

 


set /a sum=0

rem  …………………for命令的应用@echo off

rem set设置成可求值的数字表达式的时候用/a

for %%x in (*.txt) do (

echo %%x文件的内容如下:

type %%x

echo.

set /a sum=sum+1

)

echo 一共显示了%sum%个文件

rem  解析for %%x in (*.txt)   对于当前目录下所有以.txt结尾的文件

 


@echo off

rem  …………………通配符*和?的应用

rem *代表任意多个(包括0个字符),?代表任意单个字符

if exist *.txt echo 当前文件夹下有文件!

echo 以p开头的目录如下:

dir /d /w /b p*

echo.

echo 以dk开头的、第三个字符为任意字符、第四个字符为t、扩展名为三个字符且以do开头的文件如下:

dir /b /w dk?t.do?

 


@echo off

rem………………… 重定向符<、>、>>的应用

rem 控制数据的输入输出方式,>会替换目地数据,而>>符号只是将数据源添加到目标数据后

echo 正在自动创建的批处理…………………

echo echo 进入auto.bat批处理文件中…………………

echo type a.txt > auto.bat

echo dir /b /w >> auto.bat

echo 被自动创建的auto.bat文件的内容如下:

type auto.bat

echo.

echo 排序后的auto.bat为:

sort < auto.bat

 


@echo off

rem …………………管道符|的应用

rem 他将一个命令的输出数据提取出来,然后将提取出来的数据作为另一个命令的输入

find "requirements" a.txt | sort >result.txt

echo 对包含"requirements"单词的行排序后如下:

type result.txt

rem  批处理首先在a.txt文件中找出所有包含requirements的行,接着将找出的结果通过|传给rem  sort命令进行排序,最后将排序结果保存到result文件

 


批处理改名代码

  1. @echo off & setlocal EnableDelayedExpansion

  2. title 文件批量重命名整理

  3. mode con cols=60lines=10 & color 9b&set list=%random%

  4. echo.&echo.

  5. echo 此批处理脚本用于将此路径下的所有同类文件批量重命名

  6. echo.

  7. set /p start=开始整理文件请输入[Y]:

  8. if not "%start%"=="y" if not "%start%"=="Y" exit

  9. echo.

  10. set /p bak=请输入要整理的文件名后缀[如jpg]:

  11. echo.

  12. set /p name=请输入更改后的文件名称(直接回车则按从01开始的有序数字命名):

  13. for /f "delims=" %%i in ('dir /b *.!bak!') do (

  14. set /a num+=1

  15. if not "%%~nxi"=="%~nx0" (

  16. if !num! LSS 10 (ren "%%~nxi" !name!0!num!.!bak!&echo %%~xni 已重命名为: !name!0!num!.!bak! >>%temp%\%list%) else ren "%%~nxi" !name!!num!.!bak!&echo %%~xni 已重命名为: !name!!num!.!bak! >>%temp%\%list%

  17. )else set /a num-=1

  18. )

  19. set /a no=!num!+2

  20. mode con cols=60lines=!no!&color 5a

  21. echo !num!个文件已经完成重命名,分别为:

  22. type %temp%\%list%

  23. set /p type=要导出该清单列表请输入[Y],否则直接回车键退出。

  24. if not "%type%"=="y" if not "%type%"=="Y" exit

  25. copy %temp%\%list% 重命名列表清单.txt&del /q %temp%\%list%&exit

 

 

 

本文出自 “成鹏致远” 博客,请务必保留此出处http://infohacker.blog.51cto.com/6751239/1171510

### CMD 批处理基础与示例 #### 什么是批处理批处理是一种通过脚本来执行一系列命令的方式,在 Windows 的命令行环境中,这种技术被称为 **Batch Scripting** 或者简称 **批处理**。它允许用户将多个命令组合在一起并自动运行,从而提高效率。 --- #### 基础语法 批处理文件通常以 `.bat` 或 `.cmd` 结尾,其基本结构如下: ```batch @echo off REM 这是一个注释 command1 command2 ... pause ``` - `@echo off`: 关闭每条命令的回显功能。 - `REM`: 添加注释,不会被执行。 - `pause`: 暂停脚本等待用户按键继续。 --- #### 实际应用案例 ##### 1. 获取系统信息 可以创建一个简单的批处理脚本来收集系统的硬件和软件配置信息[^1]。 ```batch @echo off systeminfo > system_info.txt ipconfig /all >> system_info.txt wmic cpu get name, caption, maxclockspeed >> system_info.txt wmic memorychip get capacity >> system_info.txt echo System information has been saved to system_info.txt pause ``` 上述脚本会生成一个名为 `system_info.txt` 的文件,其中包含了详细的系统信息。 --- ##### 2. 自动化备份文件夹 为了实现定期备份的功能,可以通过以下脚本完成: ```batch @echo off set source_folder=C:\source\folder set destination_folder=D:\backup\folder xcopy "%source_folder%" "%destination_folder%" /E /H /C /I /Y echo Backup completed successfully. pause ``` 此脚本利用了 `xcopy` 命令来复制整个文件夹及其子文件夹的内容到目标位置。 --- ##### 3. 删除过期文件 如果需要清理旧数据,则可以用下面的方法删除指定日期之前的文件[^2]: ```batch @echo off set folder=C:\old_files set days=30 forfiles /p %folder% /s /d -%days% /c "cmd /c del @path" echo Files older than %days% days have been deleted from %folder% pause ``` 这段代码使用了 `forfiles` 工具查找并移除符合条件的老文件。 --- ##### 4. 解决“不是内部或外部命令”的问题 当遇到某些命令无法识别的情况时,可能是因为环境变量 PATH 设置不正确所致[^3]。解决方法之一是手动添加程序所在的目录至全局路径中去;另一种方式是在调用这些工具之前先定义局部变量指向它们的确切地址。 例如修正后的版本可能是这样的样子: ```batch @echo off setlocal enabledelayedexpansion set mytool_path=C:\tools\mytool.exe !mytool_path! arg1 arg2 endlocal pause ``` --- ##### 5. 提取目录下的所有文件扩展名 这里提供了一个例子用于统计当前盘符根目录下所有的不同类型的文档后缀列表[^4]: ```batch @echo off dir /a:-D /s /b *. *.*>filelist.tmp findstr /r "\..*$" filelist.tmp|sort>>extensions.lst del filelist.tmp type extensions.lst pause ``` --- #### 总结 以上仅展示了部分常见的应用场景和技术要点,实际上根据具体需求还可以开发更多复杂的逻辑流程控制语句以及交互界面设计等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值