0

我正在尝试使用这批安装 Autodesk2013 Suite

@echo off
title Installing Autodesk Suite then logging off....

NET USE \\directory /user:********\****** ****** /persistent:YES

ECHO "Installing Autodesk Suite. This workstation will log off automatically when installation is complete."

START /WAIT /B "" "....\Setup.exe" /qb /I \AutoDesk2013.ini /language en-us

ECHO "Finished"

TIMEOUT /T 10
SHUTDOWN /l /f
EXIT

它可以很好地初始化安装,但它不会等到它完成,立即继续。我以为 /WAIT 是为了阻止这种情况?

提前致谢。

编辑:最终工作批次:

@echo off
title Installing Autodesk Suite then logging off....

NET USE \\sccm\d$ /user:******\***** ******* /persistent:YES

ECHO "Installing Autodesk Suite. This workstation will log off automatically when installation is complete."

START /B "" "\AdminImage\Setup.exe" /qb /I \AdminImage\AutoDesk2013.ini /language en-us
TIMEOUT /T 10
SETLOCAL

SET TARGET=Setup.exe
@ECHO Started!

:LOOP
ping -5 2 localhost >NUL
FOR /F %%T IN ('tasklist.exe /FI "IMAGENAME eq %TARGET%"') DO (
  SET FOUND=0
  IF "%%~T"=="%TARGET%" SET FOUND=1
)
IF %FOUND%==1 GOTO :LOOP

ECHO "Finished"

TIMEOUT /T 10
SHUTDOWN /l /f
EXIT
4

1 回答 1

1

/WAIT不是保证。AutoDesk 产品在这方面尤其糟糕。我们必须监视进程列表setup.exe以辨别安装是否完成。

这样的事情证明了这个想法:

@ECHO OFF
SETLOCAL

SET TARGET=notepad.exe
start notepad
@ECHO Started!

:LOOP
ping -n 2 localhost >NUL
FOR /F %%T IN ('tasklist.exe /FI "IMAGENAME eq %TARGET%"') DO (
  SET FOUND=0
  IF "%%~T"=="%TARGET%" SET FOUND=1
)
IF %FOUND%==1 GOTO :LOOP

@ECHO Finished!

ping 是一个(骇人听闻的)延迟。参数实际上变成了-n延迟多少秒。

于 2013-12-04T13:45:12.543 回答