mboost-dp1

Simpelt VBscript problem - log fil overskrives


Gå til bund
Gravatar #1 - Slettet Bruger [22871925]
3. jun. 2014 10:03
Mojn!
Først:
Jeg er på ingen måde kyndig i VB scripting, det jeg har fået stykket sammen i dette skriv, er lavet i smarbejde med min gode ven Google, og hans utilgivelige kammerat "Trial & Error"

Jeg har et VBscript, der eksekverer et powershell (jeg kan rent faktisk finde ud af powershell), (bruger VB til dette da Powershell'en skal ekskveres 100% lydløst (silent).
I dette VBscript, er der en log funktion.

Jeg har dog dét problem, at loggen overskrives hver gang scriptet eksekveres.

Hvordan kommer jeg videre?


Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSO.CreateTextFile("c:\windows\ccm\Logs\BWV_Package_Installer.VBS.log")
Gravatar #2 - kinaholm
3. jun. 2014 10:12
http://social.technet.microsoft.com/Forums/scriptc...

Tror måske det er det, du leder efter. Dit script "creater" jo en textfil nu, i stedet for at åbne og skrive til denne.
Gravatar #3 - Slettet Bruger [22871925]
3. jun. 2014 10:40
Det ligner det rene volapyk det på den side, for en nybegynder ser VB ret ulogisk ud :D

Det fik mig dog ledt på rette spor.


Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Const ForAppending = 8
If (ObjFSo.FileExists("C:\Windows\ccm\logs\BWV_Package_Installer.log")) Then
Set objLog = ObjFSO.OpenTextFile("c:\windows\ccm\Logs\BWV_Package_Installer.log", ForAppending)
objLog.WriteLine "Log file already exist, opening"
Else
Set objLog = objFSO.CreateTextFile("c:\windows\ccm\Logs\BWV_Package_Installer.log")
objLog.WriteLine "Log file Does not exist, Creating"
End If
Gravatar #4 - Slettet Bruger [22871925]
3. jun. 2014 10:41
det blev da voldsomt grimt det der... det er pænere IRL!
Gravatar #5 - Nextnx
3. jun. 2014 10:45
http://msdn.microsoft.com/en-us/library/314cz14s%2...
Se "create" flag en IF EXIST er ofte unødvendig til dit formål.
Gravatar #6 - Slettet Bruger [22871925]
3. jun. 2014 10:45
Næste step er at få den til at tjekke/installere prerequisits for PowerShell - det er hyggeligt med lidt udfordring i ny og næ :D
Gravatar #7 - Nextnx
3. jun. 2014 10:50
"vbscript shellexecute" med runas hvis du vil tvinge elevate.
"vbscript Shell Run" hvis der skal ventes på retur.
"vbscript Shell Exec" hvis lortet bare skal startes.
Gravatar #8 - Slettet Bruger [22871925]
3. jun. 2014 11:57
Shell.run er allerede del af scriptet, men tak :-)
Gravatar #9 - Magten
3. jun. 2014 13:33
Kan PowerShell scriptet ikke outputte det du har brug for? :)

Out-File med -Append skriver i en eksisterende fil fx.
Gravatar #10 - Slettet Bruger [22871925]
3. jun. 2014 14:37
Ville gerne have at VB-scriptet tilføjer til loggen også (VB scriptet starter en skjult powershell som skal lave det reelle arbejde)

Min log funktion i PowerShell:

Function LogWrite {
Param ([string]$logString)
$dateTime = (Get-Date `
-Format "yyyy-MM-dd HH:mm:ss")
$toLog = "$currentTime $logString"
Add-content $logFile `
-value $toLog
}

Hvis du har ideer så vil det være velkomment - målet er at loggen engang skal kunne læses med farvekoder osv. i "Configuration manager Trace log tool"
Gravatar #11 - Slettet Bruger [22871925]
3. jun. 2014 14:42
Hovsa - gammel Copy Paste:

$toLog = "$currentTime $logString"

Istedet:

$toLog = "$dateTime $logString"
Gravatar #12 - Magten
3. jun. 2014 17:37
Har ikke umiddelbart nogen bud :)

Bruger du backticks meget? :D
Gravatar #13 - Slettet Bruger [22871925]
3. jun. 2014 18:17
Ja, det øger overskueligheden, og ser pænere ud imo.
Gravatar #14 - Magten
3. jun. 2014 18:51
Jeg er ikke gode venner med dem, har overset for mange af dem efterhånden :D

Er det en kommando med mange parametre laver jeg hellere et hashtable, og er der knap så mange får den bare parametrene på.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login