如果存在语句不起作用的批处理文件

时间:2016-09-29 21:57:55

标签: batch-file if-statement

我有一个包含3组工作站的小型网络。我使用批处理文件按组推送第三方更新(按组分组的文本文件中的工作站名称),我试图为此回收。我想安装一个应用程序,但只有安装了Outlook 2016。阅读帮助文件"如果",我想我可以添加一个"如果存在'文件名'转到结束",但它不起作用。它似乎完全跳过"如果存在"使用或不使用Outlook 2016排列并安装应用程序。我缺少什么?

@ECHO OFF
SET /P GroupName=
FOR /F %%A IN (\\server\share\admin\workingfolder\update\groups\%groupname%.txt) DO (
IF EXIST "\\%%A\c$\program files (x86)\Microsoft Office\Office16\Outlook.exe" GOTO END
xcopy /e /q "\\server\share\admin\software\application" "\\%%A\c$\temp\application\"
psexec cmd "\\%%A\temp\application\application.msi"
rmdir /s /q "\\%%A\c$\temp\application\"
)
exit
:END    
ECHO "Outlook 2016 was not detected, application not installed > "\\server\share\admin\software\application\install logs\%%a.txt" 
exit

1 个答案:

答案 0 :(得分:2)

您有两个问题:

1)您的描述不适合您的代码。只有在outlook.exe不存在时才会安装代码。

2)someTextField将破坏任何块,也是FOR块

解决方案:不要在块中使用GOTO

GOTO