私はワークステーションの3つのグループを持つ小さなネットワークを持っています。バッチファイルを使用して、サードパーティの更新プログラムを、グループごとに(テキストファイル内のワークステーション名をグループごとに)プッシュして、これをリサイクルしようとしています。 Outlook 2016がインストールされている場合に限り、アプリケーションをインストールしたいと考えています。 "if"のヘルプファイルを読んで、 "if exist"というファイル名を "goto end"に追加できると思っていましたが、動作しません。それは完全に "存在する"行をスキップし、Outlook 2016の有無にかかわらずアプリをインストールするようです。何が欠けていますか?if exists文が動作しないバッチファイル
1)あなたの記述はあなたのコードにフィットしません:
@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
'@ECHO OFF'行を削除して、何が印刷されるのかを確認してください。 IF EXIST行に期待していたことを示していますか? – tmr232