2017-08-31 51 views
0

您好我目前有一個工作腳本,它具有一些簡單的邏輯。我想在腳本的4個位置添加這種類型的行,以便我們可以跟蹤用戶是否運行腳本以及腳本的哪一部分已運行或未運行。BATCH文件並將日誌記錄添加到工作腳本

用了記錄工作的腳本是這樣的:

@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) 

我想這樣的行添加到腳本中的所有3個行動。

腳本首先檢查應用程序的v.4是否已安裝,如果是,則腳本結束。然後,腳本會查看是否安裝了應用程序的v.3,如果它運行卸載或未安裝應用程序,它將安裝應用程序的v.4並結束。

我想加入這一行的3倍:

1「應用程序已安裝」 1「卸載應用程序」 1「安裝應用程序的第4節」

這腳本必須由舊版本的用戶運行兩次,以便他們可以卸載並重新啓動,然後再次單擊它以開始安裝新版本。

​​

這就是我試圖製作腳本的方法,但是第一個腳本正在工作並破壞它。我失敗了。 :(

@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 \文件\診斷\登錄\工作站\ IntelliChief4 \%COMPUTERNA ME%%USERNAME%的.txt GOTO ENDSCRIPT 如果存在(「C:\ Program Files文件(86) \ IntelliChief \ IntelliChief Clients \ Login Client \ FiddlerCore4.dll「); THEN (調用」C:\ Program Files(x86)\ InstallShield安裝信息\ {3E189F35-24F9-49D9-9A39-F310D8C25A6E} \ setup.exe 「/卸載) ECHO」卸載IntelliChief v.3「>> \ bakertanks.com \ files \ Diagnostics \ Logon \ Workstations \ IntelliChief4 \ COMPUTERNAM E%%USERNAME%.txt ELSE(call \ bakertanks.com \ files \ it \ packages \ Intellichief4 \ ICsetup \ setup.exe/silent -Env ic01system.bakertanks.com 10800 -WB -PR); THEN ECHO 「安裝IntelliChief第4節」 >> \ bakertanks.com \文件\診斷\登錄\工作站\ IntelliChief4 \%COMPUTERNAM E&_%USERNAME%的.txt

:ENDSCRIPT 

我似乎無法爲了使格式與UNC路徑一起工作,它不會讓我做四個空格。

+2

好吧。你有什麼問題? –

+0

當我添加ECHO /日誌行時,我的腳本就會向南行進。 :( 我可以給你一些例子,當我明天早上回到辦公室時,我嘗試了什麼。 我想將ECHO行添加到所有3個操作中,以便它將一個文件寫入名爲COMPUTERNAME_USERNAME的網絡文件夾,在文件內部是ECHO'ed的行,以便我知道用戶是哪一步一個可能的故障排除和可見性。 –

+0

格式化使得閱讀非常困難。添加日誌記錄並運行腳本時會發生什麼?你會得到什麼錯誤信息? – aphoria

回答

1

我用你的腳本,你說的工作,並添加了一些ECHO行記錄。我認爲這會做你想做的事:

@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 
相關問題