我要做的是获取多个文件并从文件名中删除不必要的数据。好消息是所有相同的格式都使用“_”作为名称中的分隔符。格式类似于 Report_16666_2023_01.csv。我需要的是第二个分隔数据,其余的可以删除,所以文件看起来像这个 16666.csv。任何帮助都会很棒。我很想更好地了解它是如何工作的,以及您可以向我发送链接的任何网站,这样我就可以了解更多信息。
问问题
232 次
2 回答
0
从命令行这将起作用......
for /f "delims=_ tokens=1-2,*" %a in ('dir *.csv /b') do ren "%a_%b_%c" "%b.csv"
如果某些东西不起作用并且您需要调试,请将命令替换为ren
。echo
为了更好地理解事情是如何工作HELP
的:输入命令提示符以查看所有可用的命令。所有命令都支持/?
作为参数来解释命令正在做什么。如果你发出 afor \?
你会发现 /f 做了什么以及这些选项是如何工作的。dir \?
将揭示我为什么使用/b
于 2013-09-09T16:32:02.300 回答
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"
于 2013-09-09T16:49:17.747 回答