01_批量修改文件名.bat
:: ________________________________________________批量修改文件名
@echo off
echo 开始更改文件名
set extension = .rar
:: ________________________________________________ /a 用来标识数值类型的变量
set /a sum = 0
for %%m in (*) do (
if not "%%m" == "batchrename.bat" (
:: ________________________________________________ren 命令来修改文件名
ren %%m %%m%extension%
set /a sum = sum + 1
)
)
echo 文件改名完毕,一共有 %sum%个文件被改名!
set sum =
set extension =
这段命令明显有问题,以后学深了再来改改,这里先记一笔:重命名的时候没有进行判断,会重复命名
02_创建从0到99的100个文件
@echo off
echo 正在创建文件
:: echo.输出空行,即相当于输入一个回车
echo.
echo.
:: /l 表示for循环只能在指定的范围循环
for /l %%n in (0,1,99) do (
:: >>重定向符号
echo 测试文档 >>test%%n.txt
)
echo 文件创建完毕
03_自动循环某个程序
@echo off
echo 正在测试是否可以ping 通主机 18.18.18.34....
:again
:: __________________________________________>nul 表示将ping命令的输出信息发送到空设备而不显示在屏幕上
ping 18.18.18.34 >nul
:: __________________________________________EQU 判断某两个数值是否相等
if not %errorlevel% EQU 0 goto again
start "可正常与主机通讯" echo 现在可以正常ping 通主机 18.18.18.34
04_显示批处理的完整路径信息
@echo off
echo 当前运行的%0文件的完整路径为:
:: ____________________________________%0代表批处理文件本身,而%~dp0表示文件上的路径信息
echo %~dp0
echo.
echo.
05_将文件名自动更名为当前系统日期
@echo off
:: _______________________________________%1为命令行传给批处理要改名的文件
if not exist %1 ( echo 命令用法如下:
:: _______________________________________%0表示批处理名
echo %0 filename
echo filename: 表示需要修改的文件名。
echo.
echo.
goto end
)
:: _______________________________________ %~x1表示%1文件的扩展名,~x表示取变量的扩展名
set extension=%~x1
@echo on
:: _______________________________________ tokens用于定义for循环变量的个数,delims用于定义字符串的分隔符
for /F "tokens=1-3 delims=/- " %%A in ('date/T') do set date = %%A%%B%%C
:: _______________________________________ 这里特别说明一下,date应该是被改变了值的,可是这里没有变,所以报错
ren %1 %date%%extension%
echo.
echo 文件%1已经被成功更名为%date%%extension%
set extension=
set date=
:end