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 |