我有一系列文件需要每天重命名。我收到的文件格式如下:yyyyMMdd_hhmmss_xxx.someFileName.txt我需要删除中间的时间戳以及文件名前面的三位数字段,并保留日期和“someFileName.txt”片段。生成的文件名应如下所示:yyyyMMddsomeFileName.txt
对于蝙蝠文件我很无能为力,我做了一些实验:
@setlocal EnableDelayedExpansion
@for %%i in (.\*.txt) do call rename %%i
:rename
@set dateString=%%i:~0,8%
@set nameString=%%i:~20%
@set combinedString=%dateString%%nameString%
@echo %combinedString%
显然,这实际上并没有重命名。它只是打印combineString输出。我收到语法错误:“命令的语法不正确~0,8~20”
这里发生了什么?对此有什么正确的解决方法?
答案 0 :(得分:1)
@echo off
for /f "delims=" %%X in ('dir /a:-d /b *.txt') do (
for /f "tokens=1,2,3,* delims=_." %%A in ("%%~nxX") do (
echo %%A%%D
)
)
如果要重命名,请将echo
命令替换为ren "%%~fX" "%%A%%D"
。