给你100个txt,怎么把她们的名字改成0.txt,1.txt,2.txt.....99.txt呢?
貌似是一个很简单的改名字过程,但是如果数量比较大的话,就不能手工改名了。
下面是用window批处理批量改名的代码:
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.txt') do (
rename "%%i" "!a!.txt"
set /a a+=1
)
附:
for 的/f代表遍历当前目录下的文件。"delims=" 指示分隔符集,这里是空集。
dir 的/b代表只显示文件名
set 的/a代表后面的等式中的字符串,当成数学算术式来处理。
这里重点说明第一行, setlocal EnableDelayedExpansion即打开变量本地化。在批处理中,set定义的一个变量,有变量名扩展的功能,即同一个变量名有环境变量和本地变量两种意义。一般情况下,环境变量和本地变量内容保持一致,但是,在for循环体里面,使用本地变量要用感叹号,比如!a!使用环境变量仍然使用%a%.在默认情况下,比如set /a var=var+1.等号两边的var都是代表本地变量!var!
看一个测试代码就知道了:
@echo off
setlocal EnableDelayedExpansion
set var=abc
echo %%var%%=%var%
echo "var"=!var!
echo.
for /l %%i in (1 1 10) do (
set /a var=var+1
::全局变量
echo %var%
::局部变量
echo !var!
)
最后的结果是: