Windows 根据内容标准重命名大量txt文件(批处理脚本帮助)

Windows 根据内容标准重命名大量txt文件(批处理脚本帮助),windows,batch-file,cmd,scripting,Windows,Batch File,Cmd,Scripting,我在一个文件夹中有很多*.txt文件 文本文件看起来像一本词典,其中包含一些缩写 这个词的意思就在它旁边。例如 file1.txt aaa-bbb-ccc = this is a abc file2.txt aa-dd-ee = blah blah blah file3.txt aaa-ff-xxxx = have a nice day file4.txt mm-aaa-xx = batch script 等等 缩写: 1.可以是2到4个

我在一个文件夹中有很多*.txt文件

文本文件看起来像一本词典,其中包含一些缩写 这个词的意思就在它旁边。例如

file1.txt

aaa-bbb-ccc 
    = this is a abc 
file2.txt

aa-dd-ee 
    = blah blah blah
file3.txt

aaa-ff-xxxx     
    = have a nice day
file4.txt

mm-aaa-xx 
    = batch script
等等

缩写: 1.可以是2到4个字符,可以是aaa、mm或任何文本。
2.大多数在第二行,因为第一行是空白的

我想知道是否可以使用批处理 通过该文件夹读取每个文件内容的脚本, 并根据缩写将其重命名。如何进行

aaa-bbb-ccc.txt

aa-dd-ee.txt

等等


提前感谢

使用普通的
for
循环来处理每个文件。使用
for/f
循环处理文件中的行。由于/f的
忽略空文件,所以不管第一行是否为空:

@echo off
setlocal enableDelayedExpansion
for %%a in (*.txt) do (
set "new="
for /f "usebackq delims==" %%b in ("%%a") do if not defined new set "new=%%b"
ECHO ren "%%a" "!new!%%~xa"
)
有关详细信息,请阅读
以获取/?

注意:出于安全原因,只需将
ren
命令回显到屏幕即可禁用该命令。确认输出正常后,移除回声


编辑:
=
可能在同一行上。或者不。。。要解决此问题,请使用
delims==
。(如果您在使用空格时遇到问题,并且缩写中没有空格,请扩展
…delims==“

你好,Stephan,谢谢你的回复。我运行了代码。代码似乎很接近。但是,在许多文件中,它无法处理,因为等号和详细信息在同一行。例如xxx yyy zzz=这在同一行……有可能限制为“=”号吗?非常感谢Stephan!它工作得很好。祝你有愉快的一天