使用.bat文件更改文件名

时间:2013-09-09 16:13:17

标签: batch-file

我要做的是获取多个文件并从文件名中删除不必要的数据。好的是,使用“_”作为名称中的分隔符的格式相同。格式如下Report_16666_2023_01.csv。我需要的是第二个分隔数据,其余的可以删除,所以文件看起来像这16666.csv。任何帮助都会很棒。我想更好地了解这是如何工作的,任何网站都可以给我发送链接,这样我就可以了解更多信息。

2 个答案:

答案 0 :(得分:0)

从命令行开始,这将有效......

   for /f "delims=_ tokens=1-2,*" %a in ('dir *.csv /b') do ren "%a_%b_%c" "%b.csv"

如果某些内容不起作用且您需要调试,请将ren命令替换为echo

为了更好地理解工作原理:在命令提示符下键入HELP以查看所有可用命令。所有命令都支持/?作为参数来解释命令正在执行的操作。如果您发出for \?,您会发现/ f的作用以及选项的工作原理。 dir \?将揭示我使用/b

的原因

答案 1 :(得分:0)

与rene的答案非常相似,但只重命名与*_*_*_*.csv匹配的文件。

for %F in (*_*_*_*.csv) do @for /f "tokens=2 eol=_ delims=_" %N in ("%F") do @ren "%F" "%N.csv"

将所有百分比加倍,以便在批处理文件中使用:

@echo off
for %%F in (*_*_*_*.csv) do for /f "tokens=2 eol=_ delims=_" %%N in ("%%F") do @ren "%%F" "%%N.csv"