Just nu i M3-nätverket
Gå till innehåll
jessar94

Kopiera filer från en enhet till C katalogen

Rekommendera Poster

Postad (redigerade)

Hej!

 

Har ett skript som ska kunna kopiera en fil från en enhet till en mapp på skrivbordet som heter test

Detta är mitt skript:

 

 

Dim fs, path1, path2

Set fs = CreateObject("Scripting.FileSystemObject")

path1 = "H:\Jesse_Nas\home\stänger ej av datorn.txt"

path2 = "C:\Users\användarnamnet\Desktop\test\stänger ej av datorn.txt"

 

fs.CopyFile path1, path2

 

Set fs = Nothing

 

 

 

Nu till min stora fråga

 

Jag ska kunna skicka filen till en som t.e.x heter bertil utan att skriva in det specifika användarnamnet

 

om jag skickar skriptet till en annan person ska den kunna köra det direkt utan att skriva in path2 = "C:\Users\användarnamnet\Desktop\test\stänger ej av datorn.txt"

 

Hur talar jag om att den ska kolla vilken person som är inloggad för att senare kopiera filen till användarens mapp som då är mappen test på skrivbordet

 

 

Tacksam för all hjälp!

 

Mvh Jesse

Redigerad av jessar94

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Detta verkar fungera för mig. Men jag har testat det på min jobb-dator och risken finns att det inte fungerar likadant om man inte har en Active Directory.

Dim user
Dim sysInfo
Dim homefolder
Set sysInfo = CreateObject("ADSystemInfo")
Set user = GetObject("LDAP://" & sysInfo.UserName)
homeFolder = user.homeDirectory

WScript.StdOut.WriteLine(homeFolder)

 

Det koden gör är att den letar sökvägen till hemkatalogen och skriver ut den på skärm. Dvs motsvarande C:\Users\användarnamnet\

Redigerad av .M

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag hittade en lösning på mitt problem

 

såhär blev skriptet

 

 


Dim fs, path1, path2

Set fs = CreateObject("Scripting.FileSystemObject")

Set objNetwork = wscript.CreateObject("wscript.network")

strUserName=objNetwork.Username

path1 = "C:\Users\" & strUserName & "\Desktop\test.odt"

path2 = "C:\Users\" & strUserName & "\Desktop\test\test.odt"

fs.CopyFile path1, path2
MsgBox path1
Set fs = Nothing

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Fast, du, mitt skrivbord ligger på D:

 

Bäst du letar reda på hela sökvägen för det är inte givet vilken enhet skrivbordet ligger på.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om du kollar på denna biten av koden....

 

 

path2 = "C:\Users\användarnamnet\Desktop\test\stänger ej av datorn.txt"

 

Så ser du att sökvägen kommer från C:\

Fast, du, mitt skrivbord ligger på D:

 

Bäst du letar reda på hela sökvägen för det är inte givet vilken enhet skrivbordet ligger på.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

och skriver du dit på min dator så hamnar det ej på mitt skrivbord för det ligger på

D:\Users\UserName\Desktop

 

dvs du bör söka reda på exakta sökvägen, nu hårdkodar du c:\Users vilket kan ge fel hos en del.

 

Du borde kunna få fram den sökvägen via miljövariablerna.

 

Är det VB du programmer? Inte VB.Net eller VBA?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Det är ett vanligt vbs script.

 

För dom flesta så ska C:\ vara systempartitionen.

 

D enheten brukar man lägga sina saker på.

 

 

 

 

 

och skriver du dit på min dator så hamnar det ej på mitt skrivbord för det ligger på

D:\Users\UserName\Desktop

 

dvs du bör söka reda på exakta sökvägen, nu hårdkodar du c:\Users vilket kan ge fel hos en del.

 

Du borde kunna få fram den sökvägen via miljövariablerna.

 

Är det VB du programmer? Inte VB.Net eller VBA?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Precis.

 

Systemet på C och egna filerna på D.

Precis som jag har det.

 

VB-script, då ska du väl vara i en annan kanal

//eforum.idg.se/forum/32-asp-vbscript/

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nu har du precis bevisat att du inte vet vad du håller på med.

 

du sa att du hade det såhär: D:\Users\UserName\Desktop

 

Det måste ju då betyda att du har installerat ditt OS på D:\

 

D:\ ska vara en partition för sig, systemet ska vara på C inte på D (min åsikt)

 

 

 

 

 

Precis.

 

Systemet på C och egna filerna på D.

Precis som jag har det.

 

VB-script, då ska du väl vara i en annan kanal

http://eforum.idg.se...2-asp-vbscript/

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tråden flyttad.

 

och jo, jag har systemet på C:, en SSD disk.

Alla mina egna filer, skrivbordet, bilder, dokument har jag flyttat till D:, en vanlig hårddisk. Bara att högerklicka, ta upp egenskaper och ändra mål så flyttar Windows alla filer till nya mappen.

 

Lite off topic detta men vill bara visa att du bör söka reda på exakta sökvägen via ett API eller en miljövariabel annars kommer det gå fel i vissa lägen.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Men bara för att du pekar om mina dokument så ska den inte flytta alla windows filer.

 

För det är väl det du har gjort?

 

 

Tråden flyttad.

 

och jo, jag har systemet på C:, en SSD disk.

Alla mina egna filer, skrivbordet, bilder, dokument har jag flyttat till D:, en vanlig hårddisk. Bara att högerklicka, ta upp egenskaper och ändra mål så flyttar Windows alla filer till nya mappen.

 

Lite off topic detta men vill bara visa att du bör söka reda på exakta sökvägen via ett API eller en miljövariabel annars kommer det gå fel i vissa lägen.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

För du skrev ovan att du hade det såhär: D:\Users\UserName\Desktop

 

 

hur kan du ha det när du skriver att du installerat windows på C

 

 

Var får du enhetsbokstaven D ifrån?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Okej, ska vi ta det från grunden.

 

Jag har i ur och minnes tid alltid lagt upp min Windows-installation enligt

1: Systemet och program på C:

2: Användarfiler på D:

 

Helt enkelt med den enkla tanken att när Windows behöver installeras om, då är det bara att blåsa ut C: (bara rädda några filer som finns kvar under Application Data)

När systemet utvecklats, som nu då jag har en SSD och två vanliga diskar i, då ser jag till att systemet finns på en egen disk och alla mina andra filer på en annan (se bild nedan)

 

 

Få jo, det går, läs bara på länken.

Du högerklickar på exempelvis Dokument-mappen

Tar upp egenskaper, klicka plats och där kan du välja var mappen ska finnas.

Det fina är att detta är en systemmapp, söker ett program då efter denna mapp hittar den denna var den än må finnas. Kan vara på C, D eller även en nätverksenhet om man är lite vågad.

 

Ja, såhär ser det ut:

post-8996-0-99824000-1362843957_thumb.png

Där C: är system

D: är användarfiler

A: är en gammal slö disk som används för backup från D: (intern backup bättre än inget)

G: är tom.

T:, tertiär, där har tidigare växlingsfilen legat men nu ligger den på SSDn. Denna partition ligger i början på en roterande disk, dvs i snabbaste området.

 

Så ja, tar jag en utforskare, skriver in exempelvis Skrivbord då hamnar jag på D:\Users\Username\Desktop.

skriver jag Dokument

D:\Users\Username\Documents

men skriver jag

%appdata%

då hamnar jag på

C:\Users\Username\AppData\Roaming

för den ligger kvar på C:, den är inte lika lätt eller värd att flytta.

 

 

Problem skriver du, jag har inget problem. Däremot kan slarvigt skrivna program få problem på min dator.

Redigerad av Monshi

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Ohh, det var bra att du skickade med bild.

 

Jag är van vid windows xp och kör oftast med det, och allt flyttas inte i xp när du pekar om mina dokument. skrivbordet ligger fortfarande i C: inte på den nya platsen där mina dokument ligger, men så blir det i windows 7.

 

Då förstår jag att du får problem (mitt skript fungerar inte för dig),

 

Jag tror att den här raden borde fungera för att då skriva till skrivbordet

 path 2 = D:\Users\" & strUserName & "\Desktop\test.odt 

 

återkom gärna om det inte funkar så ska jag se om jag kan anropa ett API istället.

Redigerad av jessar94

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

nu kör jag inte ditt skript, påpekar bara för dig att du bör ta det i beaktande att platsen inte är låst till en viss sökväg.

Fast om den miljövariabeln som behövs finns i WinXp vet jag inte men den borde finnas.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Vad kör du för skript då? :)

 

 

Har du någon API i nuläget som kollar var användarens katalog ligger någonstans.

 

så att jag inte binder till någon sökväg.

 

 

nu kör jag inte ditt skript, påpekar bara för dig att du bör ta det i beaktande att platsen inte är låst till en viss sökväg.

Fast om den miljövariabeln som behövs finns i WinXp vet jag inte men den borde finnas.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

jag har detta skriptet:

 

 Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")

msgbox strHomeFolder 

 

 

 

Hur går jag tillväga för att lägga in det i mitt skript som ser ut såhär i nuläget:

 


Dim fs, path1, path2 'våra variabler

Set fs = CreateObject("Scripting.FileSystemObject") 'skapar mitt fs som är mitt objekt

Set objNetwork = wscript.CreateObject("wscript.network") ' skapar ett "objekt" för nätverket

strUserName=objNetwork.Username 'Kollar vilken användare som är inloggad

path1 = "C:\Users\" & strUserName & "\Desktop\test.odt" 'kopiera filen test från C:\Users\InloggadAnvändare\Desktop

path2 = "C:\Users\" & strUserName & "\Desktop\test\test.odt" 'kopiera filen test till C:\Users\InloggadAnvändare\Desktop\test

fs.CopyFile path1, path2 
'MsgBox path1 <-- test för att se så att sökvägen fungerar
Set fs = Nothing ' dödar funktionen fs

Redigerad av jessar94

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Hej Cecilia.

 

Det som vi pratar om är att jag ska kopiera en fil från en enhet till skrivbordet.

 

och jag har ju märkt att xp hade ju C:\Documents and Settings\

 

det har ju inte windows 7. så det första som jag skulle behöva göra är ett skript som först kollar var användaren har sin hemkatalog och vad enhetsbokstaven för just "hemkatalogen" blir, jag ska inte specificera vilken användare det gäller eller om det handlar om enhetsbokstaven C:\ eller D:\ utan den ska kunna hämta det genom en miljövariabel

 

Jag har inte studerat sidan men det diskuteras hur man kommer åt just skrivbordet med hjälp av miljövariabler i alla fall för olika Windows och olika placeringar av skrivbordet.

http://stackoverflow...-to-the-desktop

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...