Tengo un archivo de proceso por lotes que detectará si el usuario tiene el .NET Framework instalado yendo al directorio y verificando si existe el directorio CONFIG.archivo de proceso por lotes para esperar a que se complete una instalación antes de pasar a la siguiente línea
Si el directorio no existe, entonces el usuario no tiene instalado .Net framework. El archivo por lotes continuará para instalar .Net framework. Sin embargo, existe un problema ya que los frameworks .Net deben ser instalados antes de ejecutar la configuración para instalar mi marcador. Así que he puesto una declaración PAUSE para que el usuario presione cualquier botón para continuar después de que se haya instalado el marco.
Sin embargo, a nuestro cliente no le gusta esto ya que algunos de sus clientes no entienden y presionan una tecla antes de que el marco haya terminado de instalarse. Esto hace que la instalación falle ya que el framework no se ha instalado primero.
Estoy usando la PAUSA que esperará la entrada del usuario. Sin embargo, ¿hay alguna manera de que el lote espere hasta que el marco se termine automáticamente en lugar de usar el comando PAUSE?
Muchas gracias por todas las sugerencias,
@ECHO OFF
REM Copy the configuration file
copy config.xml "%AppData%\DataLinks.xml"
REM Search for the CONFIG file, if this doesn't exit then the user doesn't have the .Net framework 2.0
SET FileName=%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG
IF EXIST %FileName% GOTO INSTALL_DIALER
ECHO.You currently do not have the Microsoft(c) .NET Framework 2.0 installed.
ECHO.This is required by the setup program for MyApplication.
ECHO.
ECHO.The Microsoft(c) .NET Framework 2.0 will now be installed on you system.
ECHO.After completion setup will continue to install MyApplication on your system.
ECHO.
REM Install the .Net framework and wait for the user to input before install the dialer
PAUSE
ECHO Installing... Please wait...
SET FileName =
Start .\NetFx20SP2_x86.exe
ECHO Once the .Net Framework has completed. Press any key to continue to install the dialer.
PAUSE
Start .\setup.exe
ECHO ON
EXIT
REM .Net framework has been skipped contine to install the dialer.
:INSTALL_DIALER
ECHO *** Skiped Dotnet Framework 2.0.50727 ***
ECHO Installing... Please wait...
SET FileName=
Start .\setup.exe
ECHO ON
EXIT
Hola, todas las soluciones aquí funcionan. Sin embargo, me pregunto qué significa la barra invertida frente al comando WAIT, es decir,/WAIT – ant2009
. Me lo estoy preguntando. Se tarda unos 5 minutos en instalar el marco, si el usuario cancela durante el progreso. ¿Hay alguna manera de salir del archivo por lotes? Cuando probé la instalación se ejecutó y luego falló porque el usuario canceló la instalación del marco. Gracias – ant2009
"help start" en la línea de comando le dirá lo que hace/WAIT: "Inicie la aplicación y espere a que termine". Es una barra diagonal o solidus, por cierto, no una barra invertida. – Joey