DOS命令用原文件名的一部分重命名

ciq*_*uta 5 rename

我有很多这样命名的文件:
YYY.XXXXXX

我需要编写一个 DOS 批处理命令来重命名,如下所示:
YYYXXXXXX.ZZZ

YYY 和 ZZZ 是固定字符串,只有 XXXXXX 是可变的。

试过这个没有成功:
rename YYY.?????? YYY??????.ZZZ

Jam*_* L. 10

您可以使用该for语句来执行此操作,因为它使您可以分别访问文件名和扩展名:

for /f "tokens=1* delims=." %i in ('dir /b yyy.*') do ren "%i.%j" "%i%j.zzz"
Run Code Online (Sandbox Code Playgroud)

Usingtokens=1,2 delims=.导致它将dir /b yyy.*on返回的值拆分.%iand%j变量,其中%i是文件名(或“yyy”),%j是变量扩展名(不带前导点.)。

如果直接从命令提示符键入命令,请使用上面的命令。从批处理文件中,您需要将所有%符号加倍,如下所示:

for /f "tokens=1* delims=." %%i in ('dir /b yyy.*') do ren "%%i.%%j" "%%i%%j.zzz"
Run Code Online (Sandbox Code Playgroud)

确保从所有yyy.xxxxxx文件所在的文件夹运行此命令。

  • +1,但最好使用 `"tokens=1*"`,以防 XXXXXX 包含 `.` (2认同)