windows - 在 Windows 批处理脚本中重命名文件

标签 windows batch-file cmd

你能帮我解决我的问题吗?我需要重命名目录中的一些文件,并且必须在 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的文件目录(我换了驱动器...)上执行一个dir,在/b(裸)格式 - 仅名称,无 header 和 /ad` - 无目录名。

FOR/F读取每一行,将_分隔符之前的部分分配给%%f(token 1)和分隔符(标记“*”)之后的行的剩余部分到下一个元变量(%%g)

然后重命名 - 我刚刚 echo 编辑了它

关于windows - 在 Windows 批处理脚本中重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19373807/

相关文章:

Windows:ReportEvent 函数

powershell - 如何将文件从旧的文件夹结构移到新的文件夹结构?

c# - WebRequest中如何模拟DNS名称解析失败?

windows - 检查子字符串是否包含字符串

batch-file - 这个批处理文件到底应该做什么?

windows - 如果存在,则批量检查是否区分大小写

batch-file - 使用 forfiles 时无法执行(错误 2)

batch-file - 管道输出到删除命令

node.js - 使用 Node js 从打印机扫描

mysql - C程序中的"unable to include mysql.h"