hoi,
ben bezig met een scriptje om folders te renamen.
Situatie : er is een folderstructuur geëxporteerd uit een applicatie naar Windows filesystem. Vanwege beperkingen met de lengte van de path-naam (max. 250 in de API) worden de lange foldernamen vervangen door een korte 8-cijferige objectid die in de applicatie gebruikt wordt. De oorspronkelijke foldernaam zit in een .txt bestandje met metadata.
Script doorloopt de folders van boven naar beneden en zoekt de naam bij in de bijbehorende .txt file.
Wat uiteindelijk mis gaat id het renamen zelf in regel 24. Ik krijg een melding 'ongeldige bestandsnaam'.
Script krijgt waarschijnlijk geen schoonheidsprijs, 't is een tijd gelden dat ik geprogrammeerd heb en het is veelal jatwerk
ben bezig met een scriptje om folders te renamen.
Situatie : er is een folderstructuur geëxporteerd uit een applicatie naar Windows filesystem. Vanwege beperkingen met de lengte van de path-naam (max. 250 in de API) worden de lange foldernamen vervangen door een korte 8-cijferige objectid die in de applicatie gebruikt wordt. De oorspronkelijke foldernaam zit in een .txt bestandje met metadata.
Script doorloopt de folders van boven naar beneden en zoekt de naam bij in de bijbehorende .txt file.
Wat uiteindelijk mis gaat id het renamen zelf in regel 24. Ik krijg een melding 'ongeldige bestandsnaam'.
Script krijgt waarschijnlijk geen schoonheidsprijs, 't is een tijd gelden dat ik geprogrammeerd heb en het is veelal jatwerk
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| Option Explicit Dim folder, subfolders, oFolder, strStartFolder, objNTFS, objInStream1, strTextLine1, strName, lengte1, strFolder, pos1, lengte2, strNew set objNTFS = Wscript.CreateObject("Scripting.FileSystemObject") Const ForReading = 1, ForWriting = 2 strStartFolder = "C:\export_dossiers\20091211142534_71008164\Dossier-2" 'eerste aanroep sub RenameSubFolders strStartFolder Sub RenameSubFolders(strFolder) set folder = objNTFS.GetFolder(strFolder) set subfolders = folder.SubFolders For Each oFolder In subfolders ' naam van te hernoemen folder (objectid) strFolder = oFolder.Name ' naam uit metadata set objInStream1 = objNTFS.OpenTextFile(oFolder.Path & "\" & strFolder & "_Data.txt", ForReading) strTextLine1 = objInStream1.ReadLine lengte1 = len(strTextLine1) - 15 strName = trim(mid(strTextLine1, 16, lengte1)) ' evt. spaces in naam vervangen ?? ' strName = replace(strName, " ", "-") WScript.Echo "Renaming " & oFolder.Name & " to " & strName ' WScript.Echo "Renaming " & oFolder.Path & " to " & ofolder.ParentFolder.Path & "\" & strName ' oFolder.Name = strName ' recursief aanroepen sub RenameSubFolders oFolder.Path Next End Sub |