重命名Windows批处理脚本中的文件
你能帮我解决我的问题吗。我需要重命名目录中的一些文件,并且必须在Windows批处理文件中重命名。 这些文件的格式为重命名Windows批处理脚本中的文件,windows,batch-file,cmd,Windows,Batch File,Cmd,你能帮我解决我的问题吗。我需要重命名目录中的一些文件,并且必须在Windows批处理文件中重命名。 这些文件的格式为vxxx\uuxx,其中XXXX可以是任何数字。我需要将文件重命名为某个名称,以删除V9999\uuuu。我有以下几点,但它不适合我 REM Get all files from directory for %%f in (C:\data\\*.sql) do ( echo %%~nf how to split the filename and rename
vxxx\uuxx
,其中XXXX
可以是任何数字。我需要将文件重命名为某个名称,以删除V9999\uuuu
。我有以下几点,但它不适合我
REM Get all files from directory
for %%f in (C:\data\\*.sql) do (
echo %%~nf
how to split the filename and rename the file ???
)
使用for命令,给出分隔符和标记(子字符串)指示:第一个标记(%g)将是下划线左侧的文本,其余文本将放在%h中(下一个标记) 编辑以删除不需要的回音
for %%f in (*_*.sql) do for /f "tokens=1,* delims=_" %%g in ("%%~f") do echo ren "%%~f" "%%~h"
首先,在与*.*.sql匹配的文件的目录(我已经更改了驱动器…)上执行dir
,格式为
/b(裸)格式-仅名称,无标题和
/ad`-无目录名
读取每一行的FOR/F
,将\u
分隔符前面的部分分配给%%F
(标记1),将分隔符后面的剩余部分(标记“*”)分配给下一个元变量(%%g)
然后重新命名-我刚刚对它进行了
echo
ed阅读这里的如何接受答案:
@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