25. september 2006 - 14:44Der er
9 kommentarer og 1 løsning
Kopiere mappe fra netværk, til fortrukne på den lokale bruger
Hej Jeg ønsker et script som kan kopiere en mappe fra en netværksmappe \\servernavn\mappe, til brugerens lokale fortrukne. For ikke skulle lave en ny for hver bruger skal der benyttes en variabel til %USERPROFILE%. Har lavet en simpel version, som dog ikke understøtter %USERPROFILE% Set fso = CreateObject("Scripting.FileSystemObject") fso.copyFolder "\\servernavn\mappe","C:\Documents and Settings\user\Favorites",True
Er der nogle kvikke folk som kan lave scriptet om så det understøtter variabler?
Er rimelig ny til VBscript. Så hvis du lige kan uddybe hvad der skal angives for henholdsvis homedrive, og homepath. Med andre ord, lidt forklarende tekst om dem, så jeg forstår det lidt bedre. :o)
Men den manglende forklaring indikerer faktisk at der ikke er noget at forklare. Bare kopier den angivne tekst direkte over i en vbs-fil. Så burde scriptet selv afdække hvad brugernavnet på den aktuelle bruger er :-)
Okay, se det forklarede allerede lidt mere. Det eneste problem er at den melder fejl i linje 6, med procedurekaldet eller argumentet er ugyldigt. Derfor ønsket om den uddybende forklaring.
Dette er den test jeg laver, hvor der ligger en mappe med links som skal kopieres over i fortrukne.
Set WSHShell = WScript.CreateObject("WScript.Shell") Set WshVolatileEnvironment = WshShell.Environment("Volatile") homedr = WshVolatileEnvironment("homedrive") homepa = WshVolatileEnvironment("homepath") Set fso = CreateObject("Scripting.FileSystemObject") fso.copyFolder "\\xp201212\test",homedr & homepa & "\Favorites",True
Kan du forklare hvorfor fejlen opstår. Tak for hjælpen indtil videre.
Jeg har nu prøvet at teste programmet lidt bedre, og den eneste fejl jeg kunne finde var, at der manglede en backslash efter "favorites" i sidste linie. Men det burde ikke give den fejl som du nævner. Hvilket styresystem kører du med? Prøv at køre følgende udgave, hvor der er indføjet en echo-linie. Check så om det er den rigtige sti, der toner frem:
Set WSHShell = WScript.CreateObject("WScript.Shell") Set WshVolatileEnvironment = WshShell.Environment("Volatile") homedr = WshVolatileEnvironment("homedrive") homepa = WshVolatileEnvironment("homepath") Set fso = CreateObject("Scripting.FileSystemObject") wscript.echo homedr & homepa & "\Favorites\" fso.copyFolder "\\xp201212\test",homedr & homepa & "\Favorites\",True
Det er en XP i et 2003 domæne. Jeg tror jeg har fundet problemet. Homedrive er et netværksdrev, hvor Favorites ikke ligger. Kaldet homedr & homepa & "\Favorites\" giver s:\\Favorites\. Men fortrukne ligger på C:\Documents and Settings\%username%\Favorites
Kan du rette det til, så tror jeg det skulle virke efter hensigten. Så tror jeg også du har fortjent mere end 150 point.
Prøv så dette. Jeg har stadig indsat en test-linie inden den sidste linie, så vi kan holde øje med, om din maskine kender de variabler, som jeg trækker på:
Set WSHShell = WScript.CreateObject("WScript.Shell") Set WshProcessEnvironment = WshShell.Environment("Process") usr = WshProcessEnvironment("username") Set fso = CreateObject("Scripting.FileSystemObject") wscript.echo "c:\documents and settings\" & usr & "\Favorites\" 'fso.copyFolder "\\xp201212\test", "c:\documents and settings\" & usr & "\Favorites\", True
Du er velkommen, og dejligt at vi fik det til at virke :-)
Synes godt om
Ny brugerNybegynder
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.