嗨,我是刚开始批量处理的人,对我的.bat文件重命名有疑问。
我查看了以下解决方案,并尝试将其转移到我的问题中: Renaming file names with a BAT file
所以我的.bat像这样:
setlocal enabledelayedexpansion
set /a count=1
set padded_count=000!count!
for /f "tokens=*" %%a in ('dir /b /od *.txt') do (
ren "%%a" !padded_count!.txt
set /a count+=1
)
我有一个随机名称为.txt数据的文件。 例如
abc.txt
def.txt
123.txt
456.txt
我想将它们更改为:
0001.txt
0002.txt
...
但是当我使用.bat时,它只是第一个更改其名称的.txt。 你能解释一下为什么吗?我应该怎么做才能得到所有这些。
或者使用cmd中的REN使用“ ren * .txt ___”之类的东西来处理此问题,是否有可能
答案 0 :(得分:2)
setlocal enabledelayedexpansion
set /a count=10001
for /f "tokens=*" %%a in ('dir /b /od *.txt') do (
ren "%%a" !count:-4!.txt
set /a count+=1
)
其中!count:-4!
选择count
的最后4个字符。
答案 1 :(得分:1)
在您对要求进行评论之后,这类似于@Magoo的答案,但我并没有将其限制为4个字符。
@echo off
setlocal enabledelayedexpansion
set count=10000
for /f "tokens=*" %%a in ('dir /b /od *.txt') do (
if "!count:~1!" == "9999" set count=100000
set /a count+=1
echo ren "%%a" !count:~1!.txt
)
在这种情况下,一旦我们达到9999,我们将设置一个新的count
变量,这样文件将以另外一位数字继续。
ren "file9999.txt" 9999.txt
ren "file10000.txt" 00001.txt
ren "file10001.txt" 00002.txt
...