Avatar billede nph12 Nybegynder
29. april 2004 - 08:20 Der er 126 kommentarer og
1 løsning

Flyt adressebog, foretrukne m.m. vha en batch fil

Hej
Hvordan laver jeg en batch fil som flytter mapper i Documents and Settings. Det skal ske for alle bruger.

Jeg vil godt have flyttet adressebog, foretrukne, mine mails og outlook indstillinger, skrivebog.

Hvordan laver jeg en sådan batch fil? Da er jo nogle af mapperne som er skjulte.
Avatar billede bertelbrander Novice
29. april 2004 - 19:59 #1
Du bør kunne fjerne hidden og system attributterne med:

attrib -H -S whatever

inden du flytter dem, og så måske sætte dem bagefter med:

attrib +H +S whatever
Avatar billede nph12 Nybegynder
29. april 2004 - 21:41 #2
Jeg ved ikke helt, hvor jeg skal starte. Jeg vil godt have flyttet følgende mapper for alle bruger fra nuværende placering til en ny f.eks. D:\Documents and Settings\Administrator\Foretrukne eller en ny selvvalgt som denne D:\Administrator\Foretrukne


C:\Documents and Settings\Administrator\Foretrukne
C:\Documents and Settings\Administrator\Dokumenter
C:\Documents and Settings\Administrator\Skrivebord
C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
C:\Documents and Settings\Administrator\Application Data\Microsoft\Outlook
C:\Documents and Settings\Administrator\Application Data\Microsoft\Address Book
Avatar billede bertelbrander Novice
30. april 2004 - 00:53 #3
Det er vel blot et spørgsmål om at lave et "lille" batch job.

Start med at spørge hvor man vil have flyttet mapperne hen, det gøres med:
set /P DestFolder="Hvor skal mapperne flyttes hen:"

Man kan liste alle brugere med:
dir "C:\Documents and Settings" /AD /B

Så opretter du en mappe i destinations folderen for hver bruger

Derpå fjerner du Hidden og System (og for en sikkerheds skyld readonly) attributterne for alle brugers filer.

Så bruger du move kommandoen til at flytte filerne.

Til slut fortæller du windows hvor mapperne er flyttet hen. Så vidt jeg har set har du regnet ud hvordan man gør det (?)
Avatar billede nph12 Nybegynder
04. maj 2004 - 16:36 #4
Ja, det skal bare være et "lille" batch job. Jeg har besluttet bare at flytte mapperne til d: drevet med samme sti.

Jeg kan godt se, at jeg får brugerne frem med denne kommando:
dir "C:\Documents and Settings" /AD /B

men jeg kan ikke lige se for mig, hvordan jeg får flyttet alle mapperen for alle brugerne.

Jeg kan godt se, at jeg skal flytte f.eks. C:\Documents and Settings\Administrator\Foretrukne til D:\Documents and Settings\Administrator\Foretrukne, men hvordan får jeg det gjort for alle brugerne? Det er det brugernavns ting som driller mig!
Avatar billede bertelbrander Novice
04. maj 2004 - 19:51 #5
Man kunne state med noget i stil med:

<code>
@echo off
setlocal

Set Dest=D:\Temp

for /F "delims=;" %%I in ('dir "C:\Documents and Settings" /AD /B') do @call :Process "%%I"
goto :eof

:Process

xcopy /S /I "C:\Documents and Settings\%~1" "%Dest%\%~1"
</code>

Jeg har brugt xcopy til at teste med, du skal erstatte denne med en move
Avatar billede nph12 Nybegynder
05. maj 2004 - 17:42 #6
Jeg har rette lidt i scriptet. Dog er nogle af de skjulte mapper ikke skjulte, når de bliver kopieret over. 

@echo off
setlocal

for /F "delims=;" %%I in ('dir "C:\Documents and Settings" /AD /B') do @call :Process "%%I"
goto :eof

:Process

xcopy /S /I "C:\Documents and Settings\%~1\Foretrukne" "D:\Documents and Settings\%~1\Foretrukne"
xcopy /S /I "C:\Documents and Settings\%~1\Dokumenter" "D:\Documents and Settings\%~1\Dokumenter"
xcopy /S /I "C:\Documents and Settings\%~1\Skrivebord" "D:\Documents and Settings\%~1\Skrivebord"
xcopy /S /I "C:\Documents and Settings\%~1\Lokale indstillinger\Application Data\Microsoft\Outlook" "D:\Documents and Settings\%~1\Lokale indstillinger\Application Data\Microsoft\Outlook"
xcopy /S /I "C:\Documents and Settings\%~1\Application Data\Microsoft\Outlook" "D:\Documents and Settings\%~1\Application Data\Microsoft\Outlook"
xcopy /S /I "C:\Documents and Settings\%~1\Application Data\Microsoft\Address Book" "D:\Documents and Settings\%~1\Application Data\Microsoft\Address Book"
Avatar billede bertelbrander Novice
06. maj 2004 - 00:05 #7
Du kan lave dem skjulte igen med "attrib +H whatever"

Jeg forstår dog ikke hvorfor det kun er nogen af dem der er skjulte.
Avatar billede nph12 Nybegynder
08. maj 2004 - 08:30 #8
Jeg forstår eller ikke det med de skjulte filer!

Hvordan får jeg rette nøglerne i reg.databasen, så de passer til mappernes nye placering?
Avatar billede bertelbrander Novice
08. maj 2004 - 14:23 #9
Jeg vil tro at du skal ind og rette:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

Du kan eksportere en .reg fil og rette i denne med notepad. Så kan du importere den igen med "regedit myfile.reg"

Jeg ved ikke om man kan gøre det automatisk, .reg filen er ikke en ren/normal text fil. Men måske kan man godt bruge en ren textfil, som kan laves med en række:
echo bla bla >>whatever.reg

Du bliver nok nødt til at prøve dig frem, vær opmærksom på at det kan være ret farligt at rette i registreringsdatabasen.
Avatar billede nph12 Nybegynder
08. maj 2004 - 19:18 #10
Hvis du finder ud af noget med de skjulte mappe hører jeg gerne fra dig! Ellers er det også fint noget med scriptet fra 05/05-2004 17:42:52
Avatar billede nph12 Nybegynder
10. maj 2004 - 13:30 #11
Kunne man lavet sciptet i et andet sprog, så det skjulte mapper bliver skjulte? Og evt. få rettet reg.nølgerne i samme script? Jeg kan godt finder nøglerne det handler om. Jeg har haft et spørgsmål kørende om det her på eksperten (http://www.eksperten.dk/spm/492985).

Jeg mener, at man kan importere en reg. fil ved at kalde den fra en bat-fil med denne kommando:
REGEDIT /S C:\xxxx.reg
Avatar billede bertelbrander Novice
10. maj 2004 - 19:54 #12
Man kan godt lave et program i f.ex. C++ (det jeg kender bedst) der flytter mapperne og bevarer Hidden og System attributterne. Det samme program kunne også rette i regedit.

Man kan måske også gøre det med et batch-script. Man ville så gemme attributterne, fjene dem, flytte filern og til slut genskabe attributterne. Hvis jeg finder lidt tid senere vil jeg prøve at lave et eksempel.
Avatar billede nph12 Nybegynder
14. maj 2004 - 13:10 #13
Jeg har installeret alle de programmer som skal ligge på maskinen. Jeg har "fryset" mit c: drev med deep freeze (http://www.faronics.com/html/DFStd.asp).

Nu mangler jeg "bare" at flytte disse mapper (da det ikke er så godt, hvis de ligger på c: drevet).

C:\Documents and Settings\Administrator\Foretrukne
C:\Documents and Settings\Administrator\Dokumenter
C:\Documents and Settings\Administrator\Skrivebord
C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
C:\Documents and Settings\Administrator\Application Data\Microsoft\Outlook
C:\Documents and Settings\Administrator\Application Data\Microsoft\Address Book

Evt. også C:\Programmer\Fælles filer\Symantec Shared (hvis du kan)

Da jeg har lavet alle installeringerne, så er det kun Administrator profilens mapper som skal flyttes. De skal flyttes til d: drevet med samme sti!

Håber du kan hjælpe mig, da jeg ikke selv kan finde ud af det.

På forhånd mange tak :-)
Avatar billede bertelbrander Novice
14. maj 2004 - 20:27 #14
Jeg har lavet et lille program, der kan bruges til at flytte/copiere filer:
http://home20.inet.tele.dk/midgaard/amove.zip

Du kører det med f.ex:
amove.exe -s -d C:\Documents and Settings\Administrator\Foretrukne\* d:\whatever

-s bruges hvis det skal flytte/kopiere undermapper,
-d bruges hvis det skal slette de gamle filer efter at der er kopieret.

Programmet bør sætte attributter for filer og mapper rigtigt.
Programmet vil altid overskrive destinationen uden at spørge.
Der er en lille "progress bar"
Test det først uden -d så det ikke sletter noget.
Bemærk at src skal inkludere \* (eller f.ex *.doc) til slut.

Du kan bruge det sammen med scriptet fra "04/05-2004 19:51:20"
Avatar billede nph12 Nybegynder
16. maj 2004 - 12:03 #15
Jeg har lige hurtigt prøvet programmet. Det flytter hvis filer som det skal.

Hvordan skal det bruges sammen med scriptet fra "04/05-2004 19:51:20"?

Hvordan får jeg programmet til at flytte flere mapper samtidigt (14/05-2004 13:10:53)?

Jeg vil meget gerne have, at nøglerne i regedit bliver rettet til mappernes nye placering. Med Registry Crawler er det noget nemmere at finde nøglerne!
Avatar billede bertelbrander Novice
16. maj 2004 - 14:25 #16
Du bør kunne bruge noget i stil med følgende
for løkken looper over alle brugere, i :Process skal du udvide/tilpasse listen af mapper der skal flyttes. Når du er sikker på at det virker tilføjer du -d til move kommandoen.

@echo off
setlocal
Set Dest=D:\Temp
for /F "delims=;" %%I in ('dir "C:\Documents and Settings" /AD /B') do @call :ProcessUser "%%I"
goto :eof

:ProcessUser
call :Process "%~1\Documents"
call :Process "%~1\Start Menu"
goto :eof
:Process
amove -s "C:\Documents and Settings\%~1\*" "%Dest%\%~1"

For at modificere reg. databasen kan du bruge noget i stil med:
echo Windows Registry Editor Version 5.00>regfile.txt
echo [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]>>regfile.txt
echo "AppData"="xxx">>regfile.txt
regedit /s regfile.txt

Det der skal stå i stedet for xxx laver du på ca. samme måde som dest path'en til amove kommandoen.
Avatar billede nph12 Nybegynder
16. maj 2004 - 18:13 #17
Jeg har change.bat (med scriptet fra 16/05-2004 14:25:50) og amove i samme bibliotek. Den laver denne fejl:

C:\>change.bat
Scanning: 110
Failed to create: D:\Temp\Administrator\Dokumenter
Scanning: 190
Failed to create: D:\Temp\Administrator\Foretrukne
Scanning: 40
Failed to create: D:\Temp\All Users\Dokumenter

Failed to create: D:\Temp\All Users\Foretrukne

Failed to create: D:\Temp\Default User\Dokumenter

Failed to create: D:\Temp\Default User\Foretrukne
Avatar billede bertelbrander Novice
16. maj 2004 - 19:52 #18
Hvordan ser kommandolinien ud? Put evt. en echo ind inden amove kommandoen hvor den udskriver parametrene.

Findes D:\Temp?
Avatar billede nph12 Nybegynder
16. maj 2004 - 20:36 #19
Nej D:\Temp findes ikke. Jeg har rettet det til "d:\", så skriver den dette:

C:\>change.bat
Scanning: 110
Failed to create: D:\\Administrator\Dokumenter
Scanning: 190
Failed to create: D:\\Administrator\Foretrukne
Scanning: 40
Failed to create: D:\\All Users\Dokumenter

Failed to create: D:\\All Users\Foretrukne

Failed to create: D:\\Default User\Dokumenter

Failed to create: D:\\Default User\Foretrukne

hvis jeg rette det til "d:", får jeg dette:

C:\>change.bat
Scanning: 110
Failed to create: D:\Administrator\Dokumenter
Scanning: 190
Failed to create: D:\Administrator\Foretrukne
Scanning: 40
Failed to create: D:\All Users\Dokumenter

Failed to create: D:\All Users\Foretrukne

Failed to create: D:\Default User\Dokumenter

Failed to create: D:\Default User\Foretrukne
Avatar billede bertelbrander Novice
16. maj 2004 - 20:54 #20
Prøv at putte disse to linier ind efter :Process og inden kaldet til amove:

if not exist "%Dest%\%~1"\. md "%Dest%\%~1"
if not exist "%Dest%\%~1"\. echo Could not create "%Dest%\%~1" & goto :eof

Jeg vil senere prøve at lave amove om så den selv kan finde ud af at oprette mapperne korrekt.
Avatar billede nph12 Nybegynder
16. maj 2004 - 21:05 #21
Nu sker der noget :-)

Jeg skal vel ikke flytte Default User og All Users? Jeg skal vel bare flytte min egen bruger Administrator(da programmer jo er installeret - 14/05-2004 13:10:53)?

Jeg kigger lige på det i morgen.
Avatar billede nph12 Nybegynder
16. maj 2004 - 21:20 #22
Hvis man højre klikker på dokumenter på skrivebordet og vælger egenskaber, så kan man ændre placering. Det gode er, at "programmet" kopiere filerne over til den nye placering og selvfølgelig retter nøglen i reg.databasen.

Det kunne være dejligt, hvis man kunne gøre det på alle de omtalte mapper :-)
Avatar billede bertelbrander Novice
17. maj 2004 - 00:13 #23
Jeg har lavet en ny version der altid opretter destinationen hvis den ikke findes:
http://home20.inet.tele.dk/midgaard/amove2.zip
Avatar billede nph12 Nybegynder
17. maj 2004 - 16:07 #24
Kan du lave et program i stil med 16/05-2004 21:20:04? Det skal bare være for den bruger som er logget på (16/05-2004 21:05:09)

Altså
C:\Documents and Settings\Administrator\Foretrukne
C:\Documents and Settings\Administrator\Dokumenter
C:\Documents and Settings\Administrator\Skrivebord
C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
C:\Documents and Settings\Administrator\Application Data\Microsoft\Outlook

Skal flyttes til:
D:\Documents and Settings\Administrator\Foretrukne
D:\Documents and Settings\Administrator\Dokumenter
D:\Documents and Settings\Administrator\Skrivebord
D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
D:\Documents and Settings\Administrator\Application Data\Microsoft\Outlook
Avatar billede bertelbrander Novice
17. maj 2004 - 19:29 #25
Det bliver vel noget i stil med:

@echo off
setlocal
Set Dest=D:\Documents and Settings
:ProcessUser "%USERNAME%"
goto :eof

:ProcessUser
call :Process "%~1\Foretrukne"
call :Process "%~1\Dokumenter"
[osv...]
goto :eof
:Process
amove -s "C:\Documents and Settings\%~1\*" "%Dest%\%~1"
Avatar billede nph12 Nybegynder
18. maj 2004 - 17:04 #26
Det sidste vil ikke køre. Gør jeg noget forkert?

De mapper jeg skal flytte hedder shell folder, ikke?

Nu kender jeg ikke så meget til programmering, men har fundet denne side:
http://vbnet.mvps.org/index.html?code/shell/shdirectorycopy.htm

dog ved jeg ikke, hvad jeg skal gøre for at få koden til at virke. Hvad skal jeg gøre?
Avatar billede bertelbrander Novice
18. maj 2004 - 22:45 #27
Følgende virker:
@echo off
setlocal
Set Dest=D%USERPROFILE:~1,1024%
Set Src=%USERPROFILE%
call :ProcessUser "%USERPROFILE%"
goto :eof

:ProcessUser
call :Process "Foretrukne"
call :Process "Dokumenter"
call :Process "Desktop"

goto :eof
:Process
amove -s "%src%\%~1\*" "%Dest%\%~1"

Du bør lige downloade en ny amove:
http://home20.inet.tele.dk/midgaard/amove3.zip

Koden du linker til er vist til Basic, jeg ved ikke hvordan man bruger den. Der findes de samme funktioner til C/C++
Avatar billede nph12 Nybegynder
20. maj 2004 - 21:07 #28
Kan man i C/C++ flytte shell folder? Så vil man kunne flytte mapperne som beskrevet 16/05-2004 21:20:04? Det vil måske være lettere?

Jeg spørger bare, da jeg ikke selv kender det store til programmering i C/C++.
Avatar billede bertelbrander Novice
20. maj 2004 - 23:20 #30
Jeg forstår ikke hvad de link skal bruges til.
Hvilket problem er det du forsøger at løse?
Kan man ikke løse det ved at bruge amove og skrive til regedit?
Avatar billede lap Nybegynder
20. maj 2004 - 23:24 #31
robocopy fra ressource kit er også genialt
Avatar billede nph12 Nybegynder
20. maj 2004 - 23:30 #32
Ret mig, hvis jeg tager fejl. Hvis "shell folder" er mapper, som man kan flytte med kommandoer som er beskrevet i linkne, så flyttes vel mapperne og de tilhørerende nøgler bliver rettet i regedit.

Det var bare, hvis det var "lettere" at bruge shell Objects end at først at flytte mapperne og så derefter rette nøgler i regedit, som vi gør med amove.
Avatar billede bertelbrander Novice
20. maj 2004 - 23:41 #33
Som jeg forstår "shell folder" er det blot et andet navn for en mappe på harddisken.

Jeg _tror_ ikke at man automatisk får ændret i regedit hvis man flytter f.ex. dokuments mappen.
Avatar billede nph12 Nybegynder
21. maj 2004 - 18:01 #34
Det var bare hvis man kunne :-) Ellers fortsætter vi bare med amove. Vi skal have funder udaf det med registry nøglerne!
Avatar billede bertelbrander Novice
21. maj 2004 - 19:19 #35
Måske skulle du tage et kik på f.ex. denne:

http://www.eksperten.dk/spm/500314

Emnet har været oppe en del gange på det sidste.
Avatar billede nph12 Nybegynder
21. maj 2004 - 19:50 #36
Kan vi tilføje reg.nøglerne til amove?

Med Registry Crawler er det rimelig let at finde nøglerne! Kan man lave nøgle standard nøgler tager hensyn til hvilken bruger der er logget på (16/05-2004 14:25:50)?
Avatar billede bertelbrander Novice
21. maj 2004 - 20:33 #37
Har du kikket på metoden til at rette i regedit fra "16/05-2004 14:25:50" ?

Jeg kan godt forsøge at lave et komplet eksempel senere.

Jeg vil helst undgå at ændre i reg. nøglerne i amove, så vidt jeg kan se er det ikke nødvendigt.
Avatar billede nph12 Nybegynder
22. maj 2004 - 18:06 #38
Ja, jeg har prøvet metoden fra den "16/05-2004 14:25:50". Jeg har fundet 4 reg. nøgler med Registry Crawler. Jeg har søgt med ordet "personal". Vi skal kun bruge den bruger som er logget på, er det så nøgle 1-3 vi skal bruge?

1. %USERPROFILE%\Dokumenter
2. C:\Documents and Settings\Administrator\Dokumenter
3. %USERPROFILE%\Dokumenter
4. C:\Documents and Settings\Default User\Dokumenter
Avatar billede bertelbrander Novice
22. maj 2004 - 23:44 #39
Jeg vil mene at det er 3.
Jeg er dog ikke sikker på at man kan flytte alle filer for den nuværende bruger, se linket fra "21/05-2004 19:19:28".
Avatar billede nph12 Nybegynder
23. maj 2004 - 16:57 #40
Jeg har lavet en reg.fil som ændre placeringen fra c drevet til d drevet:

Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Desktop"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,53,00,6b,00,72,00,69,00,76,00,65,00,62,00,6f,\
  00,72,00,64,00,00,00
"Favorites"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,46,00,6f,00,72,00,65,00,74,00,72,00,75,00,6b,\
  00,6e,00,65,00,00,00
"Personal"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,44,00,6f,00,6b,00,75,00,6d,00,65,00,6e,00,74,\
  00,65,00,72,00,00,00
"My Pictures"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,\
  00,74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,\
  6e,00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,\
  00,61,00,74,00,6f,00,72,00,5c,00,44,00,6f,00,6b,00,75,00,6d,00,65,00,6e,00,\
  74,00,65,00,72,00,5c,00,42,00,69,00,6c,00,6c,00,65,00,64,00,65,00,72,00,00,\
  00

Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Desktop"="D:\\Documents and Settings\\Administrator\\Skrivebord"
"Favorites"="D:\\Documents and Settings\\Administrator\\Foretrukne"
"Personal"="D:\\Documents and Settings\\Administrator\\Dokumenter"
"My Pictures"="D:\\Documents and Settings\\Administrator\\Dokumenter\\Billeder"

Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\a78b2acb1e90ea4ca7ee1fd1a0081bb9]
"001e6700"="D:\\Documents and Settings\\Administrator\\Lokale indstillinger\\Application Data\\Microsoft\\Outlook\\Outlook.pst"

Det kan godt være, at det ikke virker på andre maskiner end min, da "S-1-5-21-1757981266-583907252-839522115-500" bliver ændre afhængig af hvilken manskine det er. Kan man "hente" den brugerkode fra et eller andet sted, så det passer til den nye maskine?

Det gælder sikkert også "a78b2acb1e90ea4ca7ee1fd1a0081bb9"!

Nøglerne skal ændres begge steder ellers virker det ikke!
Avatar billede bertelbrander Novice
24. maj 2004 - 00:38 #41
Jeg har lavet et lille program:
http://home20.inet.tele.dk/midgaard/enumreg.zip

Når du kører det lister det alle nøgler under HKEY_USERS, i mit tilfælde får jeg:
.DEFAULT
S-1-5-21-bla-bla-1000
S-1-5-21-bla-bla-1000_Classes

Du kan så lave et lille filter i stil med:
@echo off
setlocal
for /F %%A in ('enumreg.exe') do call :Process %%A
goto :eof
:Process
Set name=%1
if [%name:~0,1%]==[.] echo goto :eof
if [%name:~-8%]==[_Classes] echo goto :eof
echo This is it: %name%
goto :eof

Til at fjerne de uønskede. Den rigtige key er den bliver udskrevet med "This is it".
Avatar billede nph12 Nybegynder
24. maj 2004 - 10:09 #42
Perfekt! Kan man også gøre det med outlook-delen?

([HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\a78b2acb1e90ea4ca7ee1fd1a0081bb9]
)

Så kan vi samle det og gøre det ligesom 16/05-2004 14:25:50
Avatar billede bertelbrander Novice
24. maj 2004 - 19:25 #43
Jeg har lavet en ny version:
http://home20.inet.tele.dk/midgaard/enumregkey.zip

Så kan du liste brugere med:
enumregkey.exe HKEY_USERS

og få sub-keys under
HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook

med kommandoen:
enumregkey.exe HKEY_USERS "S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook"

Du skal have "" omkring det andet argument hvis der er mellmrum i.

Du skal bygge den anden kommando ud fra output fra den første, efter filtrering.

Jeg har heldigvis ikke outlook så jeg kan ikke vise nøjagtigt hvordan du gør.
Avatar billede nph12 Nybegynder
25. maj 2004 - 11:59 #44
Nu er vi på rette spor! Dog kommer der 12 resultater, hvor der er den næstsidst som er den rigtige. Inde i den, er det den nøgle som har value 001e6700 som det drejer sig om, se: 23/05-2004 16:57:41
Avatar billede bertelbrander Novice
25. maj 2004 - 19:43 #45
Du bliver nødt til at lave et filter i stil med det fra "24/05-2004 00:38:30"
Hvis du viser mig alle 12 resultater kan jeg godt prøve at lave et.
Avatar billede nph12 Nybegynder
25. maj 2004 - 19:57 #46
Her er de 12 resultater:

0870d562115c8f4ba1c244dc34fb25cf
0a0d020000000000c000000000000046
13dbb0c8aa05101a9bb000aa002fc45a
3517490d76624c419a828607e2a54604
42acdf40ca5b11cdb7ba00aa003cf7f1
5efdae76878e7149aeadff1ccca7ea36
721fd3e934fff849ba595a7705f777b2
8503020000000000c000000000000046
9207f3e0a3b11019908b08002b2a56c2
9375CFF0413111d3B88A00104B2A6676
a78b2acb1e90ea4ca7ee1fd1a0081bb9
f86ed2903a4a11cfb57e524153480001
Avatar billede bertelbrander Novice
25. maj 2004 - 22:54 #47
Ja, det er jo ikke let at lave et filter ud fra det.
Hedder sub-keyen altid 001e6700 ? For så var det nok simplere at lave det som et C program.
Avatar billede nph12 Nybegynder
26. maj 2004 - 09:51 #48
Ja, sub-keyen har altid været 001e6700
Avatar billede bertelbrander Novice
26. maj 2004 - 20:55 #49
Jeg har lavet et nyt lille program:
http://home20.inet.tele.dk/midgaard/regenumvalue.zip

Det kan bruges til at liste "values" under en key.
Du bruger det på samme måde som enumregkey

Med disse burde det være muligt at finde din key.
Avatar billede nph12 Nybegynder
27. maj 2004 - 09:28 #50
Så fremkommer 12 nye resultater:
01020ff9
001e6700
01020fff
001e3d09
01023d0c
001e3006
001e3001
00033009
00033e03
001e3d13
001e300a
01023414

men det passer også med:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1960408961-1645522239-682003330-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\a78b2acb1e90ea4ca7ee1fd1a0081bb9]
"01020ff9"=hex:3e,bc,60,f0,f0,4a,16,43,99,26,9a,99,ee,e9,42,33
"001e6700"="C:\\Documents and Settings\\Administrator\\Lokale indstillinger\\Application Data\\Microsoft\\Outlook\\Outlook.pst"
"01020fff"=hex:00,00,00,00,38,a1,bb,10,05,e5,10,1a,a1,bb,08,00,2b,2a,56,c2,00,\
  00,6d,73,70,73,74,2e,64,6c,6c,00,00,00,00,00,4e,49,54,41,f9,bf,b8,01,00,aa,\
  00,37,d9,6e,00,00,00,44,3a,5c,44,6f,63,75,6d,65,6e,74,73,20,61,6e,64,20,53,\
  65,74,74,69,6e,67,73,5c,41,64,6d,69,6e,69,73,74,72,61,74,6f,72,5c,4c,6f,6b,\
  61,6c,65,20,69,6e,64,73,74,69,6c,6c,69,6e,67,65,72,5c,41,70,70,6c,69,63,61,\
  74,69,6f,6e,20,44,61,74,61,5c,4d,69,63,72,6f,73,6f,66,74,5c,4f,75,74,6c,6f,\
  6f,6b,5c,4f,75,74,6c,6f,6f,6b,2e,70,73,74,00
"001e3d09"="MSPST MS"
"01023d0c"=hex:72,1f,d3,e9,34,ff,f8,49,ba,59,5a,77,05,f7,77,b2
"001e3006"="Private mapper"
"001e3001"="Private mapper"
"00033009"=hex:02,00,00,00
"00033e03"=hex:21,00,00,00
"001e3d13"="{6485D262-C2AC-11D1-AD3E-10A0C911C9C0}"
"001e300a"="mspst.dll"
"01023414"=hex:4e,49,54,41,f9,bf,b8,01,00,aa,00,37,d9,6e,00,00

vi skal vel kun bruge 001e6700!
Avatar billede bertelbrander Novice
27. maj 2004 - 22:47 #51
Ideen var at du skulle bruge enumregkey til at liste alle (12) keys under

HKEY_USERS\S-1-5-21-1960408961-1645522239-682003330-500\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook

Og dernæst bruge regenumvalue til at liste alle values under de 12 keys, for derved at finde den key der havde den rigtige value (001e6700).

Som jeg forstår det er problemet at du ikke ved hvilken key under HKEY_USERS\...\Outlook der har valuen 001e6700.
Avatar billede nph12 Nybegynder
28. maj 2004 - 11:14 #52
"Som jeg forstår det er problemet at du ikke ved hvilken key under HKEY_USERS\...\Outlook der har valuen 001e6700." lige præcis!
Avatar billede bertelbrander Novice
28. maj 2004 - 21:01 #53
Hvis jeg ved at der under "HKEY_CURRENT_USER\Control Panel"  er en key der har value'n MouseSpeed, kan jeg bruge følgende lille script til at finde den:

@echo off
for /F "delims=;" %%I in ('enumregkey HKEY_CURRENT_USER "Control Panel"') do call :Process "%%I"
goto :eof

:Process
regenumvalue HKEY_CURRENT_USER "Control Panel\%~1" |findstr MouseSpeed >nul 2>&1
if errorlevel 1 goto :eof
echo "HKEY_CURRENT_USER\Control Panel\%~1"

Output er:
"HKEY_CURRENT_USER\Control Panel\Mouse"
Avatar billede nph12 Nybegynder
30. maj 2004 - 21:58 #54
Kan vi ikke prøve at samle tingene? Jeg har ikke styr på det mere!
Avatar billede bertelbrander Novice
31. maj 2004 - 00:58 #55
Det synes jeg lyder som en god idé...
Avatar billede nph12 Nybegynder
01. juni 2004 - 10:16 #56
Nogle idéer til, hvordan vi kan samle tingene?
Avatar billede bertelbrander Novice
01. juni 2004 - 22:38 #57
1: Finde ud af hvor meget vi ved:
a: Hvilke mapper skal flyttes.
b: Hvad hedder disse mapper i regedit.

2: Kan vi:
a: flytte mapperne som ønsket (f.ex. med amove)?
b: finde nøglerne i regedit med et enumregkey/enumregvalue, og kan vi ændre dem? Dette skal belyses for hver mappe fundet under punkt 1:

3: Putte alt dette ind i én bat-fil. Det er sikkert nemmest at lave en bat-fil for hver mappe i starten og så smelte disse batfiler sammen til en til slut.

Så vidt jeg lige kan overskue burde vi have alle de metoder der skal til, vi (in casu du) mangler blot at få det hele til at gå op en en højere enhed.
Avatar billede bertelbrander Novice
01. juni 2004 - 22:44 #58
I praksis tror jeg du bliver nødt til at lave et lille dokument hvor du deler opgaven op i et antal skridt, og beskriver hvert skridt med nogle få ord.

Når du har lavet det "oversætter" du hvert skridt til en antal dos/batch kommandoer eller en lille batfil.

Til slut putter du alle kommandoerne i en stor batfil.
Avatar billede nph12 Nybegynder
02. juni 2004 - 21:47 #59
Jeg kigger lige på det her en af dagene.
Avatar billede nph12 Nybegynder
04. juni 2004 - 22:16 #60
C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
skal rettes til:
D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook
(Lokale indstillinger og Application Data er skjulte mapper)

C:\Documents and Settings\Administrator\Dokumenter
skal rettes til:
D:\Documents and Settings\Administrator\Dokumenter
(Hvis man højre klikker på dokumenter på skrivebordet og vælger egenskaber, så kan man ændre placering. Det gode er, at "programmet" kopiere filerne over til den nye placering og selvfølgelig retter nøglen i reg.databasen.)

C:\Documents and Settings\Administrator\Foretrukne
skal rettes til:
D:\Documents and Settings\Administrator\Foretrukne

C:\Documents and Settings\Administrator\Skrivebord
skal rettes til:
D:\Documents and Settings\Administrator\Skrivebord

Den reg-fil ændre placeringen af mapperne på c drevet til d drevet:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Desktop"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,53,00,6b,00,72,00,69,00,76,00,65,00,62,00,6f,\
  00,72,00,64,00,00,00
"Favorites"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,46,00,6f,00,72,00,65,00,74,00,72,00,75,00,6b,\
  00,6e,00,65,00,00,00
"Personal"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,00,\
  74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,6e,\
  00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,00,\
  61,00,74,00,6f,00,72,00,5c,00,44,00,6f,00,6b,00,75,00,6d,00,65,00,6e,00,74,\
  00,65,00,72,00,00,00
"My Pictures"=hex(2):44,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,\
  00,74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,\
  6e,00,67,00,73,00,5c,00,41,00,64,00,6d,00,69,00,6e,00,69,00,73,00,74,00,72,\
  00,61,00,74,00,6f,00,72,00,5c,00,44,00,6f,00,6b,00,75,00,6d,00,65,00,6e,00,\
  74,00,65,00,72,00,5c,00,42,00,69,00,6c,00,6c,00,65,00,64,00,65,00,72,00,00,\
  00

Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1757981266-583907252-839522115-500\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Desktop"="D:\\Documents and Settings\\Administrator\\Skrivebord"
"Favorites"="D:\\Documents and Settings\\Administrator\\Foretrukne"
"Personal"="D:\\Documents and Settings\\Administrator\\Dokumenter"
"My Pictures"="D:\\Documents and Settings\\Administrator\\Dokumenter\\Billeder"

Vi skal bruge enumreg til at finde den "rigtige" bruger, så skulle reg-filen passe. Vi mangler stadigvæk at finde en løsning, hvordan vi flytter Outlook.
Avatar billede bertelbrander Novice
05. juni 2004 - 00:15 #61
Jeg har lavet et nyt lille tool:
http://home20.inet.tele.dk/midgaard/findregkey.zip

Det lister alle value's under en key (og evt. subkey)

Hvis du kører den som

findregkey HKEY_USERS ""

lister den alle (der er mange), du kan så bruge findstr som filter:

findregkey HKEY_USERS "" |findstr 001e6700

Så lister den kun dem der matcher, hvis vi er heldige er der kun en, ellers må vil lave et dobbelt filter, f.ex:

findregkey HKEY_USERS "" |findstr 001e6700 |findstr Outlook

Så putter du den ind i en for loop:

for /F "tokens=*"  %%I in ('findregkey HKEY_USERS "" ^|findstr 001e6700') do set OutlookKey=%%I

Så har du key'en i %OutlookKey%

Så burde du kunne bruge %OutlookKey% til at lave en .reg fil.
Avatar billede nph12 Nybegynder
05. juni 2004 - 21:15 #62
Det ser hvis rigtigt ud. Hvordan laver jeg så en reg-fil, så den kommer til at ligne den fra 23/05-2004 16:57:41?
Avatar billede bertelbrander Novice
06. juni 2004 - 00:56 #63
Mon ikke det er noget i stil med:

@echo off
rem First find the key
for /F "tokens=*" %%I in ('findregkey.exe HKEY_USERS "" 2^>nul ^| findstr 001e6700') do @set Key=%%I
rem Then remove \001e6700
set Key=%Key:~0,-9%

rem Then create the regfile
echo Windows Registry Editor Version 5.00>fil.reg
echo.>>fil.reg
echo [HKEY_USERS%Key%]>>fil.reg
echo "001e6700"="D:\\whatever path\\whatever.fil">>fil.reg

rem Might want to run the regfile...
Avatar billede nph12 Nybegynder
06. juni 2004 - 12:47 #64
Det ser ud til at virke. Jeg har ret lidt i scriptet:

@echo off
rem First find the key
for /F "tokens=*" %%I in ('findregkey.exe HKEY_USERS "" 2^>nul ^| findstr 001e6700') do @set Key=%%I
rem Then remove \001e6700
set Key=%Key:~0,-9%

rem Then create the regfile
echo Windows Registry Editor Version 5.00>fil.reg
echo.>>fil.reg
echo [HKEY_USERS%Key%]>>fil.reg
echo "001e6700"="D:\\Documents and Settings\\Administrator\\Lokale indstillinger\\Application Data\\Microsoft\\Outlook\\Outlook.pst">>fil.reg

Kan vi gøre det samme med de andre nøgler (23/05-2004 16:57:41)? Vi tilføjer disse til scriptet, så det bliver samlet? Skal jeg samle de forskellige programmer du har lavet i en mappe? Kan man samle alle programmerne til et program?
Avatar billede bertelbrander Novice
06. juni 2004 - 13:37 #65
Ja, du bør kunne lave det samme med de andre nøgler.

Jeg vil i aften forsøge at samle alle reg-db programmerne i et program (jeg er dog ikke sikker på at du behøver andet end det sidste). Amove vil jeg helst beholde som det er, med mindre der er fejl.
Avatar billede nph12 Nybegynder
07. juni 2004 - 22:45 #66
Mapperne bliver oprettet på d drevet (også de skjulte mapper)

MD "D:\Documents and Settings\Administrator\Dokumenter"
MD "D:\Documents and Settings\Administrator\Foretrukne"
MD "D:\Documents and Settings\Administrator\Skrivebord"
MD "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"
Avatar billede bertelbrander Novice
08. juni 2004 - 01:26 #67
Jeg arbejder på et generisk reg db tool, det tager lidt længere en forventet. Jeg regner med at være færdig om et par dage.

Jeg ved ikke rigtig hvad jeg skal bruge de sidste oplysninger til.
Avatar billede nph12 Nybegynder
08. juni 2004 - 22:05 #68
Det er bare en lille batch-fil som opretter mapperne som jeg ønsker det (med skjulte mapper). Hvis det er bedre at bruge amove, så gør vi det!
Avatar billede nph12 Nybegynder
12. juni 2004 - 17:36 #69
Når du er færdig med det nye program, så skulle vi kunne samle det hele i et program og en batch-fil?
Avatar billede bertelbrander Novice
13. juni 2004 - 00:23 #70
Jeg har den første beta version af et generisk reg db tool klar:
http://home20.inet.tele.dk/midgaard/regtool.zip

Det kan læse, skrive og søge i reg. db'en
Følgende bat-fil finder nøglen med outlook filen, skriver den nuværende placering og skriver den nye placering (jeg tror at du har outlook i HKEY_USERS)

@echo off
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  echo Current key:
  regtool -read HKEY_CURRENT_USER "%%I"
  regtool -write HKEY_CURRENT_USER "%%I" "d:\Whatever\fil.ext"
)

Kommandoerne til regtool er:
-values, for at udskive values under en key, kan kombineres med -sub for at få listet  values i undermapper også. Kan kombineres med -read for at få vist data også
-keys, for at få vist keys, kan kombineres med -sub
-read, for at få vist data, kan kombineres med -sub og -values
-write, for at få skrevet data, hvis værdien ikke eksisterer skal man specificere typen som sidste parameter (f.ex REG_SZ).
-silent for at få den til at undlade at udskrive fejl beskeder hvis den ikke kan læse en key/value/data.

HKEY_xxx skal være den første ikke kommando parameter.
Hvis man angiver parametre med mellemrum skal de puttes ind i ""
Nøglen skal altid angives, "" bruges til at specificere root.
Jeg mangler at tilføje en -delete kommando, samt at lave nogle flere tests.
Avatar billede bertelbrander Novice
13. juni 2004 - 00:26 #71
Der er sådan set ikke nogen grund til at bruge amove hvis man kan gøre det uden, bortset fra at det måske er lidt lettere og at man kan se hvor langt man er kommet.

Du burde kunne samle det hele til en bat-fil, der bruger regtool.exe og måske amove.
Avatar billede nph12 Nybegynder
13. juni 2004 - 13:52 #72
regtool virker fint:-)

Jeg har lavet en mappe med regtool.exe og en bat-fil.

Nu mangler vi bare at samlet det hele i en bat-fil. Kan vi ikke inddele det i nogle faser? Jeg havde tænkt mig noget i denne stil:

1) Oprtter mapper enten med amove eller med scriptet fra 07/06-2004 22:45:20 (og evt. udbygger det lidt)

2) Retter værdierne i reg db´en med regtool

3) Evt. sletter de "gamle" mapper

Hvad med at vi tager en ting af gangen?
Avatar billede bertelbrander Novice
13. juni 2004 - 20:24 #73
Jeg synes det lyder som en god ide.
Vil du selv prøve at lave en løsning eller skal jeg?
Avatar billede nph12 Nybegynder
13. juni 2004 - 20:54 #74
Det er nok bedst at du laver det, da du har mere styr på end jeg har. Dog vil jeg godt prøve at lave lidt selv, hvis det bare en nogle få linier i en batch fil.

P.S. Efter at de nye mapper er oprettet, skal filerne fra de gamle mapper selvfølgelig kopieres over.
Avatar billede bertelbrander Novice
13. juni 2004 - 21:07 #75
Jeg ville foretrække at du startede og så spurgte hvis der var noget du ikke kunne klare.
Så vidt jeg kan se har vi været det meste igennem, det mangler blot at blive skrevet sammen.
Avatar billede nph12 Nybegynder
14. juni 2004 - 11:33 #76
Jeg har lavet det jeg kunne. Hvis man kan lave det smartere end dette, hører jeg gerne om det! Sletning af gamle mapper driller dog lidt!

Advarsel: Bat-filen sletter mapper på c: drevet


@echo off

rem Opretter mapper
MD "D:\Documents and Settings\Administrator\Dokumenter"
MD "D:\Documents and Settings\Administrator\Foretrukne"
MD "D:\Documents and Settings\Administrator\Skrivebord"
MD "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"

rem Kopiere filer til de nye mapper
xcopy "C:\Documents and Settings\Administrator\Dokumenter" "D:\Documents and Settings\Administrator\Dokumenter" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Foretrukne" "D:\Documents and Settings\Administrator\Foretrukne" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Skrivebord" "D:\Documents and Settings\Administrator\Skrivebord" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/e/h/k/y/i/f/r/o/c


rem retter nøgler i reg. db.
@echo off
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  echo Current key:
  regtool -read HKEY_CURRENT_USER "%%I"
  regtool -write HKEY_CURRENT_USER "%%I" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst""
)


rem sletter gamle mapper
Del "C:\Documents and Settings\Administrator\Dokumenter" /s
Del "C:\Documents and Settings\Administrator\Foretrukne" /s
Del "C:\Documents and Settings\Administrator\Skrivebord" /s
Del "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s
Avatar billede bertelbrander Novice
14. juni 2004 - 22:42 #77
Du skal vel rette flere nøgler?

Hvilke problemer har du med at slette? Du er måske nødt til at fjerne Hidden og System attributterne inden du sletter, hvilket f.ex. kan gøres med:
attrib -H -S /S "C:\Documents and Settings\Administrator\Dokumenter\*"
Avatar billede nph12 Nybegynder
14. juni 2004 - 23:01 #78
Ja, der skal rettes flere nøgler. Der skal rette de nøgler som er omtalt 23/05-2004 16:57:41.
Avatar billede nph12 Nybegynder
16. juni 2004 - 14:05 #79
Nu sletter scriptet også de "gamle" mapper. Nu mangler vi bare at få rettet de omtalte reg.nøgler som er omtalt den 23/05-2004 16:57:41. 


Advarsel: Bat-filen sletter mapper på c: drevet


@echo off

rem Opretter mapper
MD "D:\Documents and Settings\Administrator\Dokumenter"
MD "D:\Documents and Settings\Administrator\Foretrukne"
MD "D:\Documents and Settings\Administrator\Skrivebord"
MD "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"

rem Kopiere filer til de nye mapper
xcopy "C:\Documents and Settings\Administrator\Dokumenter" "D:\Documents and Settings\Administrator\Dokumenter" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Foretrukne" "D:\Documents and Settings\Administrator\Foretrukne" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Skrivebord" "D:\Documents and Settings\Administrator\Skrivebord" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/e/h/k/y/i/f/r/o/c


rem retter nøgler i reg. db.
@echo off
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  echo Current key:
  regtool -read HKEY_CURRENT_USER "%%I"
  regtool -write HKEY_CURRENT_USER "%%I" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst""
)


rem sletter gamle mapper
RD "C:\Documents and Settings\Administrator\Dokumenter" /s/q
RD "C:\Documents and Settings\Administrator\Foretrukne" /s/q
RD "C:\Documents and Settings\Administrator\Skrivebord" /s/q
RD "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/q
Avatar billede nph12 Nybegynder
17. juni 2004 - 15:35 #80
Vi mangler at ændre reg. nøglerne for; Dokumenter, Billeder, Skrivebord og foretrukne.

Se evt. under 04/06-2004 22:16:07
Avatar billede bertelbrander Novice
19. juni 2004 - 00:18 #81
Er det ikke blot et spørgsmål om at bruge regtool til at ændre stierne under HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders ?

Du burde kunne løses med følgende lille script, der ændrer placering af documents (for en engelsk Win2000):

@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal" "%NewPath%
Avatar billede nph12 Nybegynder
19. juni 2004 - 19:32 #82
Jo, vi skal bruge regtool til at ændre stierne.

Jeg forstår ikke helt scriptet. Jeg forstår specielt ikke dette:
:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%

Hvordan skal det forstås?

Laver du en ny version af regtool (13/06-2004 00:23:05)?
Avatar billede bertelbrander Novice
20. juni 2004 - 01:48 #83
"set NewPath=%~1" betyder: Sæt NewPath til at være %1 uden "", da :Process blev kaldt med ouput fra regtool (inklusive "") vil NewPath blive sat til at være den gamle path til dokumenter (indholdet af nøglen Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal)

"%NewPath:~1%" betyder NewPath uden første tegn, i dette tilfælde drev bogstavet. Der sættes D på (D%NewPath:~1%") da det er det nye drev bogstav. Dette læses over i NewPath, der dermed er den nye sti til dokumenter.

Jeg har ikke fået kikket ret meget mere på regtool, men hvis det virker, er det måske heller ikke så vigtigt med en update lige nu.
Avatar billede nph12 Nybegynder
20. juni 2004 - 15:18 #84
Nu har jeg prøve at samle det hele i scriptet, men det virker ikke helt endnu. Nøglerne skal både rettes i User Shell Folders og Shell Folders. I User Shell Folders står dokumenter som %USERPROFILE%\Dokumenter hvilket vi skal have rettet til D:\Documents and Settings\Administrator\Dokumenter, da kan man ikke bare ændre drev bogstavet.

Jeg ved ikke om man kan samle scriptet bedre end dette - jeg kan ikke lige se det! 


@echo off

rem Opretter mapper
MD "D:\Documents and Settings\Administrator\Dokumenter"
MD "D:\Documents and Settings\Administrator\Foretrukne"
MD "D:\Documents and Settings\Administrator\Skrivebord"
MD "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"

rem Kopiere filer til de nye mapper
xcopy "C:\Documents and Settings\Administrator\Dokumenter" "D:\Documents and Settings\Administrator\Dokumenter" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Foretrukne" "D:\Documents and Settings\Administrator\Foretrukne" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Skrivebord" "D:\Documents and Settings\Administrator\Skrivebord" /s/e/h/k/y/i/f/r/o/c
xcopy "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/e/h/k/y/i/f/r/o/c

rem retter nøglen i reg. db. for outlook
@echo off
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  echo Current key:
  regtool -read HKEY_CURRENT_USER "%%I"
  regtool -write HKEY_CURRENT_USER "%%I" "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst""
)

rem retter nølgen i reg. db. for dokumenter Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal" "%NewPath%

rem retter nølgen i reg. db. for dokumenter User Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal" "%NewPath%


rem retter nølgen i reg. db. for billeder Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures" "%NewPath%

rem retter nølgen i reg. db. for billeder User Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures" "%NewPath%


rem retter nølgen i reg. db. for foretrukne Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Favorites"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Favorites" "%NewPath%

rem retter nølgen i reg. db. for foretrukne User Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Favorites"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Favorites" "%NewPath%


rem retter nølgen i reg. db. for skrivebord Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop" "%NewPath%

rem retter nølgen i reg. db. for skrivebord User Shell Folders
@echo off
setlocal
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop"') do call :Process "%%I"
goto :eof

:Process
set NewPath=%~1
set NewPath=D%NewPath:~1%
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop" "%NewPath%


rem sletter gamle mapper
RD "C:\Documents and Settings\Administrator\Dokumenter" /s/q
RD "C:\Documents and Settings\Administrator\Foretrukne" /s/q
RD "C:\Documents and Settings\Administrator\Skrivebord" /s/q
RD "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook" /s/q

Echo Done
Pause
Avatar billede nph12 Nybegynder
20. juni 2004 - 15:49 #85
Hvis du har tid og lyst, må du meget gerne hjælpe mig med et andet spørgsmål:
http://www.eksperten.dk/spm/509611
Avatar billede bertelbrander Novice
21. juni 2004 - 20:16 #86
Er det User Shell Folders under HKEY_USERS der skal rettes til "D:\Documents and Settings\Administrator\xxx"? Skal alle brugere bruge denne mappe?

Jeg har kikket lidt på det andet spørgsmål, men jeg kender ikke PC-DOS, og ved ikke hvilke kommandoer der findes. Er der en choice kommando? Kan den køre almindelige "windows" kommandolinie programmer? Kan den køre 16 bit DOS programmer? Er er et sted man kan downloade den? I så fald vil jeg prøve at "lege" lidt med den.
Avatar billede nph12 Nybegynder
21. juni 2004 - 20:52 #87
1) Ja, Det er User Shell Folders under HKEY_CURRENT_USER som skal rettes til "D:\Documents and Settings\Administrator\xxx"!

Der er/bliver kun en bruger (administrator)

2) Jeg har søgt på google.com efter gdisk og har fået dette:
http://www.drd.dyndns.org/fr_index.html?/gdisk.html

(gdisk er et program som følger med, når man køber Norton Ghost)

Hvis PC-Dos er et "problem" kan jeg bare ligge gdisk over på en gammel MS-DOS diskette (Win98 - startdiskette). Om det er PC-DOS eller MS-DOS er jeg ligeglad med!
Avatar billede bertelbrander Novice
21. juni 2004 - 20:59 #88
1: Hvis det er HKEY_CURRENT_USER bør %USERPROFILE% så ikke blive rettet til den nye placering og dermed stadig passe efter filerne er flyttet?

2: Er du sikker på at gdisk kan køre på MS-DOS? Jeg kikker lige på en lille menu der kan bruges med MS-DOS. Jeg går ud fra at du har styr på parametrene til GDisk (?)
Avatar billede nph12 Nybegynder
21. juni 2004 - 22:00 #89
1: Ja, %USERPROFILE% skal rettes til den nye palcering (D:\Documents and Settings\Administrator\xxx)

2: Jeg mener at gdisk kan køre på MS-Dos (prøver lige i morgen). Jeg har styr på parametrene til gdisk, så hvis du kan lave menuen, så er jeg glad:-)
Avatar billede bertelbrander Novice
21. juni 2004 - 22:23 #90
1. Så vidt jeg kan se kan man ikke ændre %Userprofile%, så vi er nok nødt til at lave %USERPROFILE%\Dokumenter om til D:\Dokuments and Settings\Administrator\Dokuments.

2: Jeg kikker på en løsning. Check lige om MS-DOS (på disketten) har choice.
Avatar billede nph12 Nybegynder
21. juni 2004 - 23:36 #91
1: Det er også det jeg mener

2: Det skal jeg nok gøre
Avatar billede nph12 Nybegynder
22. juni 2004 - 11:09 #92
1: Hvis vi retter %USERPROFILE%\Dokumenter om til D:\Dokuments and Settings\Administrator\Dokumenter, tror jeg, at det køre som det skal!

Kan man ikke forenkle scriptet på en eller anden måde?

2: Kan vi ikke "hoppe" over på det andet spørgsmål: http://www.eksperten.dk/spm/509611
Avatar billede bertelbrander Novice
24. juni 2004 - 00:15 #93
Er det ikke blot:
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personal" "D
:\Documents and Settings\Administrator\My Documents"

Eller er det "User Shell Folders" (eller begge)?


Du burde kunne samle kopiering, skrivning, og sletning af den gamle mappe i en funktion der så bliver kaldt en gang for hver mappe, noget i stil med:

call :Process "C:\bla bla\dokumenter"
call :Process "C:\bla bla\foretrukne"
goto :eof

:Process
rem copy
set new=%~1
set new=D%new:~1%
copy %1 "%new%"

rem write
regtool ----

rem del
del %1

Der er nogle mapper der ikke passer ind i dette mønster, dem må du så håndtere seperat.
Avatar billede nph12 Nybegynder
24. juni 2004 - 13:52 #94
Det er både User Shell Folders og Shell Folders som skal rettes til "D
:\Documents and Settings\Administrator\XXX"

Kan du ikke vise mig, hvordan jeg forenkler scriptet bare for f.eks. dokumenter (så skal jeg nok gøre det, for de andre ting)? Jeg forstår ikke helt 24/06-2004 00:15:19
Avatar billede bertelbrander Novice
25. juni 2004 - 23:09 #95
Du burde kunne bruge følgende:

@echo off

rem Move MyDocuments
call :Process Personal
goto :eof

:Process
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1"') do Set Old=%%I
set New=D%Old:~1%
xcopy /S /I /Y "%Old%" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error
  goto :eof
)
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
del /F /S /Q "%Old%"


Bemærk: Scriptet flytter filerne og sletter de gamle og skriver i regedit.
My Documents hedder Personal på en engelsk Win2000, det er vist noget andet på en dansk.
Scriptet sætter ikke ReadOnly/Hidden/System attributterne, da det skal gøres forskelligt for de forskellige mapper, elle du skal lave scriptet om så det bruger amove.
Avatar billede nph12 Nybegynder
26. juni 2004 - 14:22 #96
Jeg har prøvet scriptet og det virker, men der er nogen små fejl. Jeg har nu siddet i over 2½ time og prøvet at samle scriptet, så det gør det som jeg vil havde det til, men det driller en hel del.

Jeg har tilføjet følgende:
rem Move MyDocuments
call :Process Personal
call :Process Favorites
call :Process Desktop
goto :eof

Det kører også for de andre ting (skal dog lige genstarte computeren).

Jeg mangler at få outlook til at køre!

Scriptet fra 25/06-2004 23:09:45 sletter ikke de gamle mapper!

Kan vi ikke bruge scriptet fra 16/06-2004 14:05:50 til at oprette mapper, kopiere filer og slette de gamle mapper, da det virker som det skal (med de skjulte mapper)?

Evt. forenkle scriptett lidt hvis man kan og lave et afsnit som retter i reg.db. i stil med scriptet fra 25/06-2004 23:09:45.
Avatar billede bertelbrander Novice
27. juni 2004 - 01:11 #97
At få "25/06-2004 23:09:45" til at virke, er det ikke et spørgsmål om at tilføje:

attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"

Og lave del i sidste linie om til en rd?


Outlook delen kan laves med noget i stil med:

for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do set OldOutlookFile=%%Z
  set NewOutlookFIle=D%OldOutlookFile:~1%
  xcopy /???  %OldOutlookFile% %NewOutlookFile%
  del %OldOutlookFile%
  regtool -read HKEY_CURRENT_USER "%%I" %NewOutlookFile%
)

Bemærk at den sidste del er utestet, så lav lige en backup af outlook filen inden du kører det.
Avatar billede nph12 Nybegynder
27. juni 2004 - 13:33 #98
Nu virker det stort set som det skal :-) Jeg har lige et par spørgsmål:

1) Skal der ikke stå -write i sidste linie i stedet for -read?

Stien går direkte til filen: "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst" derfor driller den mapperne da jo skal oprette, kopiere og slette.

Stien skal vel hedde: "%Drev%:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook"

2) Mappen Biller som ligger under mappen Dokumenter skal vel også rettes i reg.db.? Hvis man gør det, så kopiere man vel billederne to gange?

3) Man kan vel kun flytte mapperne for en bruger, da mapperne er tilknyttet reg.db. med %USERPROFILE%? Eller kan man flytte mapperne for flere brugere? (Det er kun et spørgsmål, da jeg nok vælger kun at køre med en bruger!!) 

for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do set OldOutlookFile=%%Z
  set NewOutlookFile=D%OldOutlookFile:~1%
  MD %NewOutlookFile%
  xcopy /S /I /Y  %OldOutlookFile% %NewOutlookFile%
  RD /s/q %OldOutlookFile%
  attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger"
  attrib +H "D:\Documents and Settings\Administrator\Lokale indstillinger\Application Data"
  regtool -read HKEY_CURRENT_USER "%%I" %NewOutlookFile%
)

rem Move Documents, Favorites and Desktop
call :Process Personal
call :Process Favorites
call :Process Desktop
goto :eof

:Process
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1"') do Set Old=%%I
set New=D%Old:~1%
MD "%New%"
xcopy /S /I /Y "%Old%" "%New%"
RD /s/q "%Old%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
Avatar billede bertelbrander Novice
27. juni 2004 - 14:42 #99
1: Jo, den sidste regtool kommando skal være en -write

Du kan få fat i mappen og filnavn inklusive path med:
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do set OldOutlookFile=%%Z& Set OldOutlookPath=%%~dpZ
Her vil %OldOutlookPath% være stien alene, uden filnavn.

2: Ja, du vil flytte billederne to gange. Jeg vil foreslå at du flytter "My Documents" inklusive billeder, og så laver en lille funktion med en kommando til regtool hvor den retter nøglen for Billeder.

3: Jeg tror ikke man kan flytte for flere brugere, men jeg er ikke sikker.

Der er vist ikke nogen grund til at linierne med
attrib +H ...
attrib +H ...
står indenfor den for loop, mapperne er vist heller ikke lavet på det tidspunkt. Jeg ville flytte dem ned efter:
call :Process Personal
...
call :Process Desktop
Men inden goto :eof

I stedet for at skrive hele stien til mapperne i attrib kommandoerne kunne du læse stien fra regedit.
Avatar billede nph12 Nybegynder
27. juni 2004 - 16:19 #100
Jeg har kigget på det nu en halv time. Jeg forstår ikke rigtigt, hvad det er at jeg skal gøre.

Det vil være en stor hjælp, hvis du lige ville lave de sidste rettelser, da scriptet jo næsten er færdigt :-)
Avatar billede bertelbrander Novice
28. juni 2004 - 00:47 #101
Jeg har lavet en version der ser ud til at gøre det rigtige.
Bemærk at:
1: Jeg har sat rem foran de linier der skriver til regedit og som sletter filer.
2: Den læser stierne til de mapper der skal have tilføjet hidden attributten i regedit, så hvis ikke scriptet skriver her vil den sætte attributten for den gamle mappe.

@echo off
setlocal

rem First move Outlook
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do call :SetOutlookParm "%%Z"
)
set NewOutlookFile=D%OldOutlookFile:~1%
set NewOutlookFolder=D%OldOutlookFolder:~1%
xcopy /S /I /Y "%OldOutlookFolder%" "%NewOutlookFolder%"
rem RD /s/q %OldOutlookFolder%
rem regtool -write HKEY_CURRENT_USER "%%I" %NewOutlookFile%

rem Move Documents, Favorites and Desktop
call :Process Personal
call :Process Favorites
call :Process Desktop

rem Add Hidden attrib to "Local Settings" and "Application Data"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"') do (
  attrib +H "%%A"
)
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData"') do (
  attrib +H "%%A"
)

rem Move location of "My Pictures", it's copied with "My Documents"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures"') do (
  set Old=%%A
)
Set New=D%Old:~1%
rem regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures" %New%
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures"') do (
  set Old=%%A
)
Set New=D%Old:~1%
rem regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures" %New%

goto :eof

:Process
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1"') do Set Old=%%I
set New=D%Old:~1%
MD "%New%"
xcopy /S /I /Y "%Old%" "%New%"
rem RD /s/q "%Old%"
if errorlevel 1 (
  echo Error!
  goto :eof
)

rem regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)

rem regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
goto :eof

:SetOutlookParm
set OldOutlookFile=%~1
set OldOutlookFolder=%~dp1
set OldOutlookFolder=%OldOutlookFolder:~0,-1%

goto :eof
Avatar billede nph12 Nybegynder
28. juni 2004 - 13:53 #102
Jeg har fjernet rem de linier der skriver til regedit og som sletter filer.

Jeg har prøvet scriptet og det kører næsten som det skal.

Der er to små fejl:
1: scriptet retter ikke rigtigt i reg.db. for My Picture (DUSERPROFILE%\Dokumenter\Billeder) 
2: Scriptet skjuler ikke mapperne Lokale indstillinger og Application Data
Avatar billede bertelbrander Novice
28. juni 2004 - 20:01 #103
1: Du skal måske rette stien i kaldet til regtool for: "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures", så den passer på din danske version.

2: Måske det samme problem med: "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData" og "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"

Ellers prøv at putte nogle "echo ..." ind så du/vi kan se hvad der går galt.
Avatar billede nph12 Nybegynder
28. juni 2004 - 23:01 #104
Lokale indstillinger og Application Data hedder i reg. db. Local Settings og Local AppData.

Scriptet retter ikke rigtigt i reg.db. for My Picture (DUSERPROFILE%\Dokumenter\Billeder - det må være fejlen!).

De sidste ting skal vel også rettes i reg. db. for både User Shell Folders og Shell Folders før det virker?
Avatar billede bertelbrander Novice
28. juni 2004 - 23:48 #105
Hvad sker der når du kører linierne:
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"') do (
  attrib +H "%%A"
)
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData"') do (
  attrib +H "%%A"
)

Prøv at putte dem i en seperart .bat fil uden @echo off og se hvad der sker når du kører dem.

Står der "DUSERPROFILE%\Dokumenter\Billeder" i reg. db'en? Jeg er ret sikker på at du skal ændre det til "%USERPROFILE%\Dokumenter\Billeder" manuelt, direkte i regedit.

Hvilke "de sidste ting" ?
Avatar billede bertelbrander Novice
29. juni 2004 - 00:08 #106
Jeg var vist for hurtig der. Det går jo netop galt fordi der står %USERPROFILE% i din reg.db, det er på et eller andet tidspunkt blevet ændret til C:\...\whatever i min reg.db.

Jeg arbejder på en løsning.

I hvilke keys står der %USERPROFILE% i din reg. db?
Avatar billede bertelbrander Novice
29. juni 2004 - 00:31 #107
Det ser ud til at løsningen er at lave en lille funktion sidst i scriptet:

:ExpandUserProfile
Set Old=%~1
goto :eof

Og bruge call :EkspandUserProfile "%%A" i stedet for Set Old=%%A, derved bliver %Userprofile% oversat til "C:\Documents and Settings\<username>"

Koden der sætter attrib skal lave om til:
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"') do (
  call :ExpandUserProfile %%A
)
attrib +H "%Old%"
Avatar billede nph12 Nybegynder
29. juni 2004 - 09:53 #108
Ja, der står "DUSERPROFILE%\Dokumenter\Billeder" i reg. db'en

Det er hvad der sker, når jeg kopiere kommandoerne ind i cmd (efter jeg har flyttet mapperne med det andet script):
C:\>for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microso
ft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"') do (
%%A var ikke ventet på dette tidspunkt.

C:\>  attrib +H "%%A"
Filen %%A kunne ikke findes

C:\>)
C:\>for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microso
ft\Windows\CurrentVersion\Explorer\Shell Folders\AppData"') do (
%%A var ikke ventet på dette tidspunkt.
C:\>  attrib +H "%%A"
Filen %%A kunne ikke findes

Lokale indstillinger og Application Data hedder i reg. db. Local Settings og Local AppData.

User Shell folders hedder stregene bl.a. %USERPROFILE%\Dokumenter
Shell folders hedder stregene bl.a. C:\Documents and Settings\Administrator\Dokumenter

"De sidste ting" mener jeg, at My Picture og det skjulte filer for Local Settings og Local AppData nok skal skrives i reg. db. både i User Shell folders og Shell folders før det virker (Det virkede jo først for dokumenter, der vi havde rettet i reg. db. både for User Shell folders og Shell folders)

Kan du ikke tilføje de nye rettelser til scriptet 28/06-2004 00:47:42 og lave et helt nyt script, som jeg så kan prøve?
Avatar billede bertelbrander Novice
29. juni 2004 - 22:39 #109
Når man bruger for "kommandoen" direkte i cmd'en skal man ikke bruge %%A men %A

My pictures skulle gerne blive skrevet i reg db'en med linierne efter:
rem Move location of "My Pictures", it's copied with "My Documents"

Jeg tror ikke at "det skjulte filer for Local Settings og Local AppData nok skal skrives i reg. db"

Jeg synes at du skal lavee et forsøg på at rette de sidste ting, hvis du løber ind i problemer spørger du. Hvis du får for store problemer skal jeg nok forsøge.
Avatar billede nph12 Nybegynder
30. juni 2004 - 12:02 #110
Jeg er lige offline de næste 2 uger, men skal nok prøve og se, om jeg kan finde ud af at rette de sidste ting.
Avatar billede nph12 Nybegynder
16. juli 2004 - 13:27 #111
Så er jeg tilbage igen! Jeg har kigget lidt på det og forstår det ikke rigtigt, hvorfor det driller. Kan vi ikke starte "forfra" fra 28/06-2004 00:47:42, da jeg ikke helt har tjek på, det som er efter der!

Skjuler scriptet mapperne Lokale indstillinger og Application Data på D drevet? De står vel under "C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data" og "C:\Documents and Settings\Administrator\Lokale indstillinger" i reg.db´en?

My Pictures delen forstår jeg ikke, hvorfor den skriver "DUSERPROFILE%\Dokumenter\Billeder"
Avatar billede bertelbrander Novice
17. juli 2004 - 00:04 #112
Håber du havde en god ferie.

Du skal starte med at rette din reg. db. så der ikke står DUSERPROFILE% men %USERPROFILE%. Det er sansynligvis blevet ændret ved en fejl; et script har troet at første bogstav skulle ændres til et D.

Du skal have flettet ændringerne fra "29/06-2004 00:31:56" ind i scriptet fra "28/06-2004 00:47:42", jeg kan godt lave et forsøg på det i morgen aften, men jeg tror at der er for meget rod i min reg.db. og den er også på engelsk.

Scriptet skulle derefter gerne sætte attributterne for Lokale indstillinger og App. Data, samt flytte Billeder i reg.db'en.

Det var måske en god ide at tage en backup af de relevate nøgler i reg. db'en, kan gøres fra regedit.
Avatar billede nph12 Nybegynder
18. juli 2004 - 13:53 #113
Jo tak, det var dejligt med lidt ferie:-)

Det må være scriptet som laver fejlen med DUSERPROFILE%, da der står %USERPROFILE% inden jeg kører scriptet.

Jeg har prøvet at flette ændringerne fra "29/06-2004 00:31:56" ind i scriptet fra "28/06-2004 00:47:42", men det kører ikke rigtigt som det skal. Måske er det mig som misforstår noget!

Jeg har en testmaskine, som jeg afprøver scriptet på. Jeg "nulstiller" maskinen hver gang jeg prøver scriptet!
Avatar billede bertelbrander Novice
19. juli 2004 - 01:01 #114
Ny version der ser ud til at gøre det rigtige.
Jeg har sat echo foran de linier der skriver til reg- db'en og sletter.
Der går nok en uges tid inden jeg er online igen.

@echo off
setlocal

rem First move Outlook
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do call :SetOutlookParm "%%Z"
)
set NewOutlookFile=D%OldOutlookFile:~1%
set NewOutlookFolder=D%OldOutlookFolder:~1%
xcopy /Q /S /I /Y "%OldOutlookFolder%" "%NewOutlookFolder%"
echo RD /s/q "%OldOutlookFolder%"
echo regtool -write HKEY_CURRENT_USER "%%I" "%NewOutlookFile%"

rem Move Documents, Favorites and Desktop
call :Process Personal
call :Process Favorites
call :Process Desktop

rem Add Hidden attrib to "Local Settings" and "Application Data"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local Settings"') do (
  call :ExpandUserProfile "%%A"
)
echo attrib +H "%Old%"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData"') do (
  call :ExpandUserProfile "%%A"
)
echo attrib +H "%Old%"

rem Move location of "My Pictures", it's copied with "My Documents"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures"') do (
  call :ExpandUserProfile "%%A"
)
Set New=D%Old:~1%
echo regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures" "%New%"
for /F "delims=*" %%A in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures"') do (
  call :ExpandUserProfile "%%A"
)
Set New=D%Old:~1%
echo regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\My Pictures" "%New%"

goto :eof

:Process
for /F "tokens=*" %%I in ('regtool -read HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1"') do (
  call :ExpandUserProfile "%%I"
)
set New=D%Old:~1%
MD "%New%"
xcopy /Q /S /I /Y "%Old%" "%New%"
echo RD /s/q "%Old%"
if errorlevel 1 (
  echo Error!
  goto :eof
)

echo regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)

echo regtool -write HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\%1" "%New%"
if errorlevel 1 (
  echo Error!
  goto :eof
)
goto :eof

:SetOutlookParm
set OldOutlookFile=%~1
set OldOutlookFolder=%~dp1
set OldOutlookFolder=%OldOutlookFolder:~0,-1%

goto :eof

:ExpandUserProfile
Set Old=%~1
goto :eof
Avatar billede nph12 Nybegynder
21. juli 2004 - 13:14 #115
God ferie:-)

Jeg er offline til medio august.

Nu virker alt undtagen at scriptet ikke retter nølgen for outlook (jeg har fjernet echo, hvor det skal fjernes!).

Jeg har rettet scriptet fra d. 19/07-2004 01:01:20, så det skjuler mapperne Local Settings og Local AppData. Det kører også fint med "My Picture"!
Avatar billede nph12 Nybegynder
13. august 2004 - 20:06 #116
Så er jeg hjemme igen!
Avatar billede bertelbrander Novice
14. august 2004 - 01:14 #117
Jeg tror jeg har fundet fejlen.
Men jeg har skiftet til XP og har ikke noget outlook i min reg. db. så jeg kan ikke rigtig checke.

Prøv at køre følgende script, der kun flytter outlook og retter i nøglen:
@echo off
setlocal

rem First move Outlook
for /F "tokens=*" %%I in ('regtool -silent -values -sub HKEY_CURRENT_USER "" ^|findstr 001e6700') do (
  echo "%%I"
  set OutlookKey="%%I"
  for /F "tokens=*" %%Z in ('regtool -read HKEY_CURRENT_USER "%%I"') do (
    echo %%Z
    call :SetOutlookParm "%%Z"
  )
)
set NewOutlookFile=D%OldOutlookFile:~1%
set NewOutlookFolder=D%OldOutlookFolder:~1%
xcopy /Q /S /I /Y "%OldOutlookFolder%" "%NewOutlookFolder%"
RD /s/q "%OldOutlookFolder%"
regtool -write HKEY_CURRENT_USER %OutlookKey% "%NewOutlookFile%"

goto :eof

:SetOutlookParm
set OldOutlookFile=%~1
set OldOutlookFolder=%~dp1
set OldOutlookFolder=%OldOutlookFolder:~0,-1%

goto :eof

Hvis ikke det virker så studér output grundigt og/eller post det her.
Hvis det virker skal du tilføje linien:
set OutlookKey="%%I"
og rette linien der skriver til reg. db'en:
regtool -write HKEY_CURRENT_USER %OutlookKey% "%NewOutlookFile%"

i scriptet fra "19/07-2004 01:01:20"
Avatar billede nph12 Nybegynder
15. august 2004 - 17:49 #118
Jeg afprøver lige scriptet her en af dagene. Kan man "optage" hvad scriptet gør, så man kan se, hvor evt. fejl er?
Avatar billede bertelbrander Novice
15. august 2004 - 23:37 #119
Man kan ikke rigtig "optage" hvad scriptet gør, det bedste man kan gøre er at undlade at slå echo fra (echo off) og så pipe det hele ud i en fil som man kan studere bagefter:
whatever.bat >err.txt 2>&1

Jeg plejer at putte en række "echo whatever" ind hist og her for at se hvad der sker undervejs.

Man kan også bruge pause kommandoen til at stoppe scriptet og vente på indput fra brugen så man kan se hvor langt det er kommet.
Avatar billede nph12 Nybegynder
19. august 2004 - 19:26 #120
Jeg har prøvet scriptet og det ændre nøgle 001e6700 i reg. db´en rigtigt nu, men der er et eller andet som jeg må havde overset. Det er ligesom outlook holder fast i den gamle placering.

Denne meddelse kommer når jeg åbner outlook:
Standardmapperne til e-mail kan ikke åbnes. Den angivne sti til filen C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst er ikke gyldig.
Avatar billede nph12 Nybegynder
20. august 2004 - 15:13 #121
Jeg kigger lige, om jeg kan finde fejlen.
Avatar billede nph12 Nybegynder
21. august 2004 - 14:42 #122
Jeg er gået lidt i stå.... kan man ikke samligne en reg. fil før ændringen og en reg. fil efter ændringen? Jeg ved ikke, hvordan jeg skal gøre det? Hvis jeg kunne samligne to reg. filer, kunne jeg måske finde løsningen på "outlook problemet"!
Avatar billede bertelbrander Novice
21. august 2004 - 18:08 #123
Du kan exportere en .reg fil før og efter (File->eksporter) og sammenligne dem med fc kommandoen. Kør fc /? for at finde ud af hvordan man bruger den.
Avatar billede nph12 Nybegynder
28. august 2004 - 20:14 #124
Jeg har fundet et program til at sammenligne .reg filer

http://lastbit.com/regsnap/?src=about.regsnap

Jeg håber en af dagene at finde ud af, hvorfor outlook-delen ikke virker som det skal!
Avatar billede nph12 Nybegynder
13. september 2004 - 22:09 #125
Jeg har fået det til at virke nu!

Standardmapperne til e-mail kan ikke åbnes. Den angivne sti til filen C:\Documents and Settings\Administrator\Lokale indstillinger\Application Data\Microsoft\Outlook\Outlook.pst er ikke gyldig.

Hvis man ændre Lokale indstillinger og Application Data til d drevet, så kommer den ikke med den omtalte fejl!
Avatar billede nph12 Nybegynder
16. september 2004 - 10:22 #126
Jeg prøver lige at samle de to script i et fælles script!
Avatar billede nph12 Nybegynder
26. marts 2005 - 15:31 #127
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester