BATCH, gennemløb filer og ændr filnavn på baggrund af output fra program
Hej eksperterJeg har en mappe, som indeholder en masse filer. De fleste af disse har samme filtype (lad os sige '.ext'), men ikke dem alle. Nogle af disse filer ligger i undermapper og andre ligger i undermapper i undermapperne.
Jeg vil gerne køre en kommando for hver eneste af disse filer med endelsen '.ext' og på baggrund af outputtet fra denne kommando ændre filnavnet.
Lad mig komme med et eksempel:
Lad os sige, at mine filer ligger i 'C:\folder', så jeg har måske følgende filer
C:\folder\testfile1.ext
C:\folder\subfolder\testfile2.ext
C:\folder\subfolder\subsubfolder\testfile3.ext
For hver af disse tre filer vil jeg gerne køre kommandoen
fileinfo <filename>
Denne kommando giver et output, hvor en af linjerne i outputtet indeholder (fx) strengen
file vX.Y.Z
hvor X, Y, Z er tal. Lad os sige at følgende tre kald kaldes
fileinfo C:\folder\testfile1.ext
fileinfo C:\folder\subfolder\testfile2.ext
fileinfo C:\folder\subfolder\subsubfolder\testfile3.ext
og de tre respektive output-linjer, som jeg er interesseret i, bliver
file v1.2.3
file v4.7.9
file v8.1.1
Jeg vil dernæst gerne omdøbe filerne til
C:\folder\testfile1-[v1.2.3].ext
C:\folder\subfolder\testfile2-[v4.7.9].ext
C:\folder\subfolder\subsubfolder\testfile3-[v8.1.1].ext
Jeg kan forestille mig en for-løkke, hvor følgende kald bliver brugt for hver fil (kun for filer med endelsen '.ext')
fileinfo <filename> | find "file"
eftersom linjen med strengen "file vX.Y.Z" er den eneste linje, som indeholder ordet "file". Dette vil skrive hele den linje, jeg søger, og dermed også "vX.Y.Z"-bidden.
Jeg kan dog ikke lige se, hvordan jeg kommer videre.
På forhånd tak for hjælpen.