Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

omdøbning af filstruktur

2 views
Skip to first unread message

Effix

unread,
Jul 29, 2010, 11:27:51 AM7/29/10
to
Jeg har et problem med en mappestruktur
Strukturen ser således ud:
C:\files\abcd\efg\hijklm
men den skal laves om til:
C:\files\bcd\fga\ijklme

'a' skal være det første tegn i undermappen 'efg' --> 'afg'
'e' skal være det sidste tegn i undermappen 'hijklm' --> 'hijklme'
'h' og h skal bare slettes.
Jeg har forsøgt at finde omdøbningsprogrammer men kan ingen finde der
kan klare det.
Så den sidste udvej er vel at skrive et lille program der kan klare
det. Jeg har stort set ingen erfaring med programmering så håber der
er nogen der kan pege mig i den rigtige retning.
Måske er visual basic heller ikke det bedste valg men jeg ved ikke
helt hvor jeg skal starte.
Håber der er nogen der kan hjælpe mig
Mvh
Morten

Hans Kjaergaard

unread,
Jul 29, 2010, 12:21:59 PM7/29/10
to

Har du prøvet med total commander ?


/Hans

Effix

unread,
Jul 29, 2010, 12:50:56 PM7/29/10
to
On 29 Jul., 18:21, Hans Kjaergaard <hans.k2tek...@post5.tele.dk>
wrote:

Ja jeg kan ikke se hvordan jeg skal kunne få den til at omdøbe sådan
som jeg har beskrevet det. Kan kun få den til at "enkelte" mapper og
ikke undermapperne. jeg har rigtige mange mapper der følger den
beskrevede struktur og de skal alle omdøbes efter samme skabelon. Jeg
kan kun få total commander og andre lignende programmer til at slette
det 'a' i første mappe. Jeg kan ikke få programmerne til at huske på
'a' og indstætte 'a' som første karakter i undermappen 'efg' og så
fremdeles.

Krabsen

unread,
Jul 29, 2010, 12:55:20 PM7/29/10
to

Hvis vi ser bort fra, at din beskrivelse ikke stemmer overens med dit
eksempel :-)


"
> men den skal laves om til:
> C:\files\bcd\fga\ijklme
"

burde vel være

"
> C:\files\bcd\afg\ijklme
"

så er det en ret let opgave at løse i f.eks. VB. Hvis der er forskelle i
filstrukturen (forskelligt antal niveauer, forskelligt antal bogstaver i
mappenavne)gør det naturligvis sagen lidt mere udfordrende.

Effix

unread,
Jul 29, 2010, 1:05:37 PM7/29/10
to

Hov ja det har du ret i :) det var en tastefejl. Der er altid samme
antal niveauer og antal karakterer i mapperne. En ret let opgave i VB
siger du :) hehe ja okay måske hvis man ved hvad man laver :D hehe det
gør jeg ikke ligefrem når det kommer til VB.. kan du pege i retning af
nogle eksempler eller tutorials jeg kan give mig i kast med.
Og tak for svaret og rettelsen :)

Karsten Madsen

unread,
Jul 29, 2010, 1:49:56 PM7/29/10
to
'a' skal være det første tegn i undermappen 'efg' --> 'afg'
'e' skal være det sidste tegn i undermappen 'hijklm' --> 'hijklme'
'h' og h skal bare slettes.
Jeg har forsøgt at finde omdøbningsprogrammer men kan ingen finde der

Jeg plejer at bruge en Vb6 til den slags.

filecopy
kill
mkdir

kunne være nøgle ordene når du søger på google - evt kombineret med vb6

/karsten


Hans Kjaergaard

unread,
Jul 29, 2010, 2:10:27 PM7/29/10
to
On Thu, 29 Jul 2010 09:50:56 -0700 (PDT), Effix
<morten...@gmail.com> wrote:

Hvor mange nivuer ned har du ?
Hvor mange filer er der tale om ?

Jeg har før pipet komandoen "dir /s/b" over i en tekst fil og så brugt
søg/erstat, og derved skabt en cmd fil til ar rename med, lidt slave
agtitg men det virker, også med 100.000+ filer/mapper.

Men lav et kopi af mappe/fil-struktur til at forsøge med, træls hvil
det kikser.


/Hans

Effix

unread,
Jul 29, 2010, 2:36:23 PM7/29/10
to
On 29 Jul., 20:10, Hans Kjaergaard <hans.k2tek...@post5.tele.dk>
wrote:

> On Thu, 29 Jul 2010 09:50:56 -0700 (PDT), Effix
>
> <morteneist...@gmail.com> wrote:
>
> Hvor mange nivuer ned har du ?
> Hvor mange filer er der tale om ?
>
> Jeg har før pipet komandoen "dir /s/b" over i en tekst fil og så brugt
> søg/erstat, og derved skabt en cmd fil til ar rename med, lidt slave
> agtitg men det virker, også med 100.000+ filer/mapper.
>
> Men lav et kopi af mappe/fil-struktur til at forsøge med, træls hvil
> det kikser.
>
> /Hans

Hej Hans, tak for dit svar. Det var også min første indskydelse at
gøre netop det du forslået. jeg kan desværre bare ikke lave søg og
erstat da 'a', 'e' og 'h' er forskellige karakterer for hvert
mappenavn. det er måske heller ikke så tydeligt beskrevet i mit
eksempel.. sorry min fejl :).
Der er de tre niveauer som jeg bruger eksemplet. Der skal ikke omdøbes
nogle af filerne i mapperne det er kun mappenavnene der skal ændres.
Der er 200+ mapper
Jeg giver lige et eksempel på hvordan to af de mappestrukturer jeg har
ser ud nu og hvordan de skal se ud efter de er omdøbt som jeg ønsker.
Reference stien (eller hvad vi nu skal kalde den) C:\files\abcd\efg
\hijklm
Eksempler på de faktiske stier og hvordan de skal se ud bagefter
1. mappe
c:\files\0094\638\5331220
'a'=0 , 'e'=6, 'h'=5
c:\files\094\038\3312206
2.mappe
c:\files\5709\576\983520
'a'=5 , 'e'=5, 'h'=9
c:\files\705\576\835205

og tak for nøgleordene til karsten jeg vil forsøge at se om der er
noget at hente med dem.


Krabsen

unread,
Jul 29, 2010, 4:54:32 PM7/29/10
to

Har du VB 6 installeret (du skriver jo at du ingen
programmeringserfaring har)?

Jeg ville nok:

1. Via et loop gemme alle gamle mappenavne i et array

2. Via et nyt loop gennemløbe arrayet og rename mapperne enkeltvis.
søg på
"visual basic 6" "rename directory"
- der er mange eksempler.

Der er dog een betingelse, som skal være opfyldt, ellers går det helt i ged:

Der må ikke være noget tilfælde, hvor et omdøbt mappenavn svarer til et
'gammelt navn' længere nede i rækken!

Men da du fjerner tegn fra mappenavne er det vel et teoretisk problem.
Det nævnes blot 'for the record'..


Benny Andersen

unread,
Jul 30, 2010, 5:32:17 AM7/30/10
to
En lidt simplere omdøbning - til illustration - det er skrevet i vba -
burde også virke i vb. Eksemplet omdøber mapper direkte under c:\test
\, idet m'er i mappenavnet erstattes af n'er

Bemærk at mappenavne først smides på et array (som Krabsen også
anbefaler)- det er nemlig ikke sikkert (men utestet!) at dir() kan
gennemløbe noget der omdøbes samtidigt.

Iøvrigt sjovt at omdøbning er en sprogkonstruktion.

Sub testrename()
Dim root, folderN, fAr
root = "C:\test\"
folderN = Dir(root & "*", vbDirectory)
Do While Len(folderN)
If folderN <> "." And folderN <> ".." Then add2list fAr,
folderN
folderN = Dir(, vbDirectory): Loop
For Each folderN In fAr
Name root & folderN As root & Replace(folderN, "m", "n")

Next
End Sub

Sub add2list(V, i)
On Error GoTo err
ReDim Preserve V(UBound(V) + 1)
V(UBound(V)) = i
Exit Sub
err:
ReDim V(0)
Resume Next
End Sub


0 new messages