【发布时间】:2016-07-15 05:08:26
【问题描述】:
我想将大量文件重命名为 S001、S002 等。
我从here 得到这个代码来添加前缀:
for %a in (*.*) do ren "%a" "prefix - %a"
所以我尝试修改它,使变量随for 递增,如下所示:
for /l %x in (1,1,5) do %a in (*.*) do ren "%a" "SQ00%x"
显然这是错误的,我后来读到/l 使用数值而不是文件名,所以%a 没有任何意义(如果我错了,请纠正我)。
所以我想知道如何使用文件夹中文件的文件名在for 循环中增加一个值。
编辑
我现在设法编写了一个可以重命名文件的批处理,并且:
- 在特定目录中进行操作
- 具有特定的文件扩展名
- 告诉您该目录中有多少该扩展名的文件
- 要求一个新名称,稍后会添加数字后缀
-
循环更改不同目录中的文件
ECHO OFF Setlocal enabledelayedexpansion :start cls echo "%cd%" echo where are the files? set/p "files=>" cd "%files%" echo now in: echo "%cd%" echo files extension: set/p "ext=>" ::amount of files in the directory set/a cnt=0 for %%a in (*.%ext%) do set /a cnt+=1 echo File count = %cnt% PAUSE echo new file name: set/p "name=>" set/a Count=1 for /r %%a in (*.%ext%) do ( echo !Count! ren "%%a" "%name%!Count!.%ext%" set /a Count=Count+1 ) PAUSE goto start
现在的问题是重命名文件的 FOR 循环比目录中的文件数量多了 1 个循环,我不知道为什么
【问题讨论】:
标签: windows batch-file cmd filenames