2016-08-11 27 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行目が同じフォーマットになっていないと、動作しません。次に、XMLファイルをネイティブに読み取ることができるように、VBscriptまたはJscriptを使用してこの問題を解決することをお勧めします。テンポラリフォルダ内のいくつかのファイルでこれをテストしてください。

@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 
関連する問題