2016-08-11 201 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 
相關問題