批处理文件:根据内容重命名多个文件

时间:2016-08-11 18:03:14

标签: batch-file

首先让我说我已经搜索并发现了一些类似的问题,但对于我的生活,我无法让它为我的使用而工作。

我有一个包含多个不同名称文件的文件夹(File.Config)我需要根据文件的第7行重命名它们。

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="StylesSheetFilename" Value=""/>
<add key=""/>
<add key="" />
<add key="" />
<add key="LineNumber" value="LName" />
<!--Com Port Properties-->
</appSettings>

我希望他们以这种格式重命名为File_LName.Config。 任何帮助将不胜感激。我已经花了几个小时在我认为简单的任务上。

1 个答案:

答案 0 :(得分:0)

此解决方案完全基于您如何显示配置。如果所有配置文件的第7行格式不同,则无效。然后我建议你使用VBscript或Jscript来解决这个问题,因为它本身可以读取XML文件。请在临时文件夹中对几个文件进行测试。

 @echo off
 setlocal enableExtensions enableDelayedExpansion
 for /F "delims=" %%G in ('dir /a-d /b *.config') do (
    < "%%~G" (
        for /L %%L in (1,1,7) do (
            set /P "line="
        )
    )
    REM FOR /F "tokens=5 delims== " %%H IN ("!line!") do rename "%%~G" "%%~nG_%%~H%%~xG"
    FOR /F tokens^=4^ delims^=^" %%H IN ("!line!") do rename "%%~G" "%%~nG_%%~H%%~xG"
 )

 endlocal