Avatar billede jebaje Nybegynder
10. december 2009 - 20:38 Der er 2 kommentarer og
1 løsning

Hjælp til vbscript

Jeg er igang med at lave et lille script, der skal overskrive en bestemt fil (silent, brugeren skal ikke bemærke noget).
Det tror jeg sådan set er lykkedes for mig, men nu har jeg så 5 maskiner hvor filen ikke skal overskrives. Jeg har hostnames på de 5 pc´er, men kan ikke helt lure hvordan jeg skal få scriptet til at tage højde for dette, udover at det nok skal ind i et array.
Her er hvad jeg har, indtil videre.

Option Explicit
On Error Resume Next

Dim File,NewFile,host(4)
Set objFSO = CreateObject("scripting.FilesystemObject")
File="C:\Programmer\SFB\config.ini"
NewFile="\\server01\share\fix\config.ini"
host(0)="Com0008"
host(1)="Com0022"
host(2)="Com0039"
host(3)="Com0100"
host(4)="Com0140"
If objFSO.FileExists(File) Then
objFSO.CopyFile(NewFile,File,True)
End If


I pseudo-kode er det jeg ønsker noget ala:
If file exists then
  If hostname is not in array then
  overwrite file
  end if
end if

OBS, check på hostname skal gerne være case-unsensitive.

Er der en venlig sjæl der kan hjælpe mig med at få sat det ønskede tjek ind i ovenstående script?
Avatar billede tofte Juniormester
11. december 2009 - 00:19 #1
Prøv noget ala


Option Explicit


Dim File,NewFile,host(4),objNTInfo,a,isHostFreeFromDelete,GetComputerName,objFSO

Set objFSO = CreateObject("scripting.FilesystemObject")
Set objNTInfo = CreateObject("WinNTSystemInfo")
isHostFreeFromDelete= false

File="C:\Programmer\SFB\config.ini"
NewFile="\\server01\share\fix\config.ini"

host(0)="Com0008"
host(1)="Com0022"
host(2)="Com0039"
host(3)="Com0100"
host(4)="Com0140"

GetComputerName = lcase(objNTInfo.ComputerName)

For a=LBound(host) To UBound(host)
    If LCase(host(a))=GetComputerName then isHostFreeFromDelete=true
Next

If objFSO.FileExists(File) Then
    if (not isHostFreeFromDelete) then
       
        objFSO.CopyFile NewFile,File,True
    end if
End If
Avatar billede tofte Juniormester
11. december 2009 - 00:20 #2
hov:

If LCase(host(a))=GetComputerName then isHostFreeFromDelete=true

skal være
If LCase(host(a))=LCase(GetComputerName) then isHostFreeFromDelete=true


Ellers hjælper det jo ikke meget
Avatar billede jebaje Nybegynder
11. december 2009 - 15:47 #3
mange tak for hjælpen
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
Kurser inden for grundlæggende programmering

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