21. oktober 2010 - 15:07Der er
3 kommentarer og 1 løsning
Kopiere flere filer fra mange undermapper til én mappe - Batch script
Hej Eksperter,
Jeg skal lave en batchfil, som skal kunne hente en masse filer som ligger i forskellige undermapper (f.eks. dirRoot\dirID\*.*)
Filerne skal kopieres og ligges i en fælles mappe (f.eks. dirRoot\Allfiles\)
Der er én fil i hver undermappe. Hvis det er muligt skal filerne navngives efter deres mappenavn.
Dvs. en succesfuld løsning på ovenstående vil gøre følgende:
Filer der skal kopieres og renames: \dirRoot\QWE\fil.txt \dirRoot\E4S\fil.txt \dirRoot\PEL\fil.txt \dirRoot\JKD\fil.txt \dirRoot\MBM\fil.txt
Kopieres hertil med følgende navne: \dirRoot\Allfiles\QWE.txt \dirRoot\Allfiles\E4S.txt \dirRoot\Allfiles\PEL.txt \dirRoot\Allfiles\JKD.txt \dirRoot\Allfiles\MBM.txt
Jeg har løst opgaven ved at lave et VB script, som jo sagtens kan eksekveres fra cmd. Hvis nogen skulle kunne bruge løsningen har jeg den her:
Dim filesys, FolderMain, FolderSecondary, Subfolder, SubSubfolder, FolderCollection, SubFolderCollection, FileCollection, FileNewName, FileCounter, TheFile Set filesys = CreateObject("Scripting.FileSystemObject") Set FolderMain = filesys.GetFolder("Behandles") Set FolderCollection = FolderMain.SubFolders FileCounter=0 For Each Subfolder in FolderCollection Set FolderSecondary = filesys.GetFolder(FolderMain &"\"& Subfolder.name) Set SubFolderCollection = FolderSecondary.SubFolders For Each SubSubfolder in SubFolderCollection Set FileCollection = SubSubfolder.Files 'FileCounter = FileCounter + 1 'For Debug For Each TheFile in FileCollection 'Rename file & copy to mainfolder If filesys.GetExtensionName(TheFile)="001" Then if FileCounter = 0 then Wscript.Echo "First file found!" & vbCrLf & vbCrLf & "Click OK to begin process" End If FileCounter = FileCounter + 1 FileNewName = Subfolder.Name & "_" & SubSubfolder.Name & "_" & FileCounter & ".001" 'Wscript.Echo FileNewName 'For Debug TheFile.name = FileNewName filesys.CopyFile TheFile, "C:\Temp\EPJ\NewFiles\" End If Next Next Next Wscript.Echo "Done! " & vbCrLf & FileCounter & " files has been copied!"
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.