2017-08-31 47 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 
相关问题