2017-08-31 2 views
0

Hallo Ich habe derzeit ein funktionierendes Skript mit ein paar einfache Logik dazu. Ich möchte diesen Linientyp an vier Stellen im Skript hinzufügen, damit wir nachvollziehen können, ob ein Benutzer das Skript ausgeführt hat oder nicht und welcher Teil des Skripts ausgeführt wurde oder nicht.BATCH-Datei und Hinzufügen von Protokollierung zu Arbeitsskript

Die Arbeits Skript mit aus der Protokollierung ist dies:

@echo off 
if exist "C:\Program Files (x86)\IntelliChief\IntelliChief Clients\Login Client\Newtonsoft.Json.xml" GOTO ENDSCRIPT 
If exist "C:\Program Files (x86)\IntelliChief\IntelliChief Clients\Login Client\FiddlerCore4.dll" (Call "C:\Program Files (x86)\InstallShield Installation Information\{3E1***35-24F9-49D9-9A39-F310D8C25A6E}\setup.exe"/uninstall) ELSE (call \\******.com\files\it\packages\Intellichief4\ICsetup\setup.exe /silent -Env ic01system.*******.com 10800 -WB -PR) 

Ich mag würde Zeilen wie diese, um das Skript in allen drei Aktionen hinzuzufügen.

Das Skript prüft zuerst, ob v.4 der Anwendung installiert ist, wenn es das Skript beendet. Dann sieht das Skript, ob v.3 der Anwendung installiert ist und wenn es eine Deinstallation ausführt oder wenn die Anwendung nicht installiert ist, wird v.4 der Anwendung installiert und beendet.

Ich möchte diese Zeile 3 mal hinzuzufügen:

1 für "Anwendung bereits installiert ist" 1 für "Deinstallieren von Application" 1 für "Installation v.4 von Application"

Diese Das Skript muss zweimal von Personen mit der alten Version ausgeführt werden, damit es deinstalliert werden kann, starten Sie es neu und klicken Sie dann erneut darauf, um die Installation der neuen Version zu starten.

ECHO "IntelliChief v.4 is already installed" >> "\\******.com\files\Diagnostics\Logon\Workstations\IntelliChief4\%COMPUTERNAME%_%USERNAME%.txt" 

So habe ich versucht, das Skript zu erstellen, aber es dauerte das erste Skript, das funktioniert und brach es. Ich bin durchgefallen. :(

@ECHO OFF 
if exist ("C:\Program Files (x86)\IntelliChief\IntelliChief Clients\Login 
Client\Newtonsoft.Json.xml"); THEN 
ECHO "IntelliChief v.4 is already installed" >> 

\ bakertanks.com \ files \ Diagnostics \ Anmeldung \ Workstations \ IntelliChief4 \% COMPUTERNA ME% % BENUTZERNAME% .txt GOTO endscript Wenn exist ("C: \ Program Files (x86) \ IntelliChief \ IntelliChief Clients \ Login Client \ FiddlerCore4.dll "); DANN (Rufen Sie" C: \ Programme (x86) \ InstallShield Installationsinformationen \ {3E189F35-24F9-49D9-9A39-F310D8C25A6E} \ setup.exe auf "/ uninstall) ECHO" Deinstallieren von IntelliChief v.3 ">> \ bakertanks.com \ files \ Diagnose \ Logon \ Workstations \ IntelliChief4 \% COMPUTERNAM E%% USERNAME% .txt ELSE (Aufruf \ bookertanks.com \ files \ it \ Pakete \ Intellichief4 \ ICsetup \ setup.exe/silent -Env ic01system.bakertanks.com 10800 -WB -PR); DANN ECHO "Installation IntelliChief v.4" >> \ bakertanks.com \ files \ Diagnostics \ Anmeldung \ Workstations \ IntelliChief4 \% COMPUTERNAM E% _% BENUTZERNAME% .txt

:ENDSCRIPT 

Ich kann nicht scheinen, Um das Format mit UNC-Pfaden arbeiten zu lassen, lässt es mich nicht vier Leerzeichen machen.

+2

Okay. Was ist deine Frage? –

+0

Wenn ich die ECHO/log Zeilen hinzufüge, geht mein Skript nach Süden auf mich. :( Ich könnte Ihnen Beispiele von dem geben, was ich versucht habe, wenn ich morgen früh wieder ins Büro komme. Ich möchte die ECHO-Zeile zu allen 3 Aktionen hinzufügen, so dass es eine Datei in einen Netzwerkordner mit dem Titel COMPUTERNAME_USERNAME schreibt, innerhalb der Datei wären die Zeilen, die ECHO'ed waren, damit ich weiß, welcher Schritt die Benutzer sind eine für mögliche Fehlersuche und Sichtbarkeit. –

+0

Die Formatierung macht das Lesen sehr schwierig. Was passiert, wenn Sie die Protokollierung hinzufügen und Ihr Skript ausführen? Welche Fehlermeldung erhalten Sie? – aphoria

Antwort

1

Ich habe Ihr Skript, das Sie gesagt, gearbeitet und fügte einige ECHO Zeilen für die Protokollierung. Ich denke, das wird tun, was Sie wollen:

@ECHO OFF 
IF EXIST "C:\Program Files (x86)\IntelliChief\IntelliChief Clients\Login Client\Newtonsoft.Json.xml" (
    ECHO "IntelliChief v.4 is already installed" >>\\bakertanks.com\files\Diagnostics\Logon\Workstations\IntelliChief4\%COMPUTERNAME%_%USERNAME%.txt 
    GOTO ENDSCRIPT 
) 

IF EXIST "C:\Program Files (x86)\IntelliChief\IntelliChief Clients\Login Client\FiddlerCore4.dll" (
    CALL "C:\Program Files (x86)\InstallShield Installation Information\{3E1***35-24F9-49D9-9A39-F310D8C25A6E}\setup.exe" /uninstall 
    ECHO "Uninstalling IntelliChief v.3" >>\\bakertanks.com\files\Diagnostics\Logon\Workstations\IntelliChief4\%COMPUTERNAME%_%USERNAME%.txt 
) ELSE (
    CALL \\******.com\files\it\packages\Intellichief4\ICsetup\setup.exe /silent -Env ic01system.*******.com 10800 -WB -PR 
    ECHO "Installing IntelliChief v.4" >>\\bakertanks.com\files\Diagnostics\Logon\Workstations\IntelliChief4\%COMPUTERNAME%_%USERNAME%.txt 
) 

:ENDSCRIPT 
Verwandte Themen