你能帮我解决我的问题吗?我需要重命名目录中的一些文件,并且必须在 Windows 批处理文件中进行。
这些文件的格式为 VXXXX__<some-name>
其中 XXXX
可以是任何数字。我需要将文件重命名为某个名称,删除 V9999__
.我有以下但它对我不起作用
REM Get all files from directory
for %%f in (C:\data\\*.sql) do (
echo %%~nf
how to split the filename and rename the file ???
)
最佳答案
@ECHO OFF
SETLOCAL
for /f "tokens=1*delims=_" %%f in ('dir /b /a-d U:\data\*_*.sql') do (
echo REN U:\data\%%f_%%g %%g
)
GOTO :EOF
首先,在匹配*_*.sql的文件目录(我换了驱动器...)上执行一个
/bdir
,在(裸)格式 - 仅名称,无 header 和
/ad` - 无目录名。
用FOR/F
读取每一行,将_
分隔符之前的部分分配给%%f
(token 1)和分隔符(标记“*”)之后的行的剩余部分到下一个元变量(%%g)
然后重命名 - 我刚刚 echo
编辑了它
关于windows - 在 Windows 批处理脚本中重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19373807/