2016-08-11 3 views
0

Lassen Sie mich damit beginnen, indem ich sagte, ich habe gesucht und ein paar ähnliche Fragen gefunden, aber für das Leben von mir kann ich es nicht für meine Verwendung arbeiten.Batch-Datei: Umbenennen mehrerer Dateien basierend auf dem Inhalt

Ich habe einen Ordner mit mehreren Dateien mit unterschiedlichen Namen (File.Config) Ich muss sie auf der 7. Zeile der Datei umbenennen.

Ich möchte, dass sie in diesem Format File_LName.Config umbenannt werden. Jede Hilfe würde sehr geschätzt werden. Ich habe schon mehrere Stunden mit einer meiner Meinung nach einfachen Aufgabe verbracht.

+1

Betriebssystem? hoffentlich Linux. Suchen Sie eine Antwort in BASH? – zhqiat

+0

Windows, hoffnungsvoll nach einer Batch-Datei suchen. –

+0

@RockyR, ich bin alles zum Verschleiern von Daten, aber zumindest einen echten Wert in Ihrem Beispiel. – Squashman

Antwort

0

Diese Lösung basiert genau auf wie Sie Ihre Konfiguration gezeigt haben. Wenn die 7. Zeile aller Konfigurationsdateien nicht gleich formatiert ist, funktioniert sie nicht. Ich würde dann vorschlagen, dass Sie VBscript oder Jscript verwenden, um dies zu lösen, da es XML-Dateien nativ lesen kann. Bitte testen Sie dies für einige Ihrer Dateien in einem temporären Ordner.

@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 
Verwandte Themen