2016-08-11 202 views
0

让我开始说我已经搜索并发现了一些类似的问题,但对于我的生活,我无法让它适用于我的使用。批处理文件:根据内容重命名多个文件

我有一个文件夹与几个文件具有不同的名称(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

操作系统?希望Linux。你在BASH寻找答案吗? – zhqiat

+0

Windows,希望查找批处理文件。 –

+0

@RockyR,我都是为了混淆数据,但至少在你的例子中提供了一个真正的价值。 – Squashman

回答

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 
相关问题