I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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!
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.
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
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.
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.
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"
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!
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
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.
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)?
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 :-)
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
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?
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.
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)?
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
[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!
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".
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.
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
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
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.
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.
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\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.
@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
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?
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.
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.
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.
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.
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.
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
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\*"
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
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%
"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.
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
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.
(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!
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 (?)
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.
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:
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
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.
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.
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.
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 )
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.
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%
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
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.
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.
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?
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%"
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?
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.
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"
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.
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!
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 )
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%"
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.
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.
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"!
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!
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.