@echo off
Setlocal enableextensions EnableDelayedExpansion
REM %%~pI - expands %I to a path only
REM %%~nI - expands %I to a file name only
REM %%~xI - expands %I to a file extension only
REM %%~fI - expands %I to a fully qualified path name
cls
set "var="
set /a total=0
set setupLocation=%SYSTEMDRIVE%\setup\
set installer=*.lnk
for %%s in ("%setupLocation%%installer%") do (
set /a total+=1
)
echo.
echo %total% Programs to be installed:
echo.
set /a count=0
for %%I in ("%setupLocation%%installer%") do (
set currentInstall=%%~nI
echo %currentInstall%
for %%s in ("%setupLocation%*.exe") do (
SET var=%%s
SET var|FINDSTR /b "var="|FINDSTR /i %currentInstall% >nul
IF ERRORLEVEL 1 (echo.>nul) ELSE (for /f "delims=" %%i in ('echo %%s') do set Program[%count%]=%%~nI)
)
for %%s in ("%setupLocation%*.lnk") do (
SET var=%%s
SET var|FINDSTR /b "var="|FINDSTR /i %currentInstall% >nul
IF ERRORLEVEL 1 (echo.>nul) ELSE (for /f "delims=" %%i in ('echo %%s') do set File[%count%]=%%i)
echo !File[%count%]!
)
for %%s in ("%setupLocation%*.loc") do (
SET var=%%s
SET var|FINDSTR /b "var="|FINDSTR /i %currentInstall% >nul
IF ERRORLEVEL 1 (echo.>nul) ELSE (for /f "delims=" %%i in ('type %%s') do set Dir[%count%]=%%i)
echo !Dir[%count%]!
)
set /a count=%count%+1
echo %count%
)
echo.
pause
for /F "tokens=2 delims==" %%s in ('set Program[') do (
echo %%s
set /a counter+=1
)
echo test %counter%
:loop
cls
if %counter% EQU 0 goto end
for /l %%n in (0,1,%counter%) do (
if exist !Dir[%%n]! (
echo !File[%%n]! Already Installed.
SET /A counter=%counter%-1
pause
if %counter% EQU 0 goto end
echo %counter%
) else (
echo.
echo Installing !Program[%%n]! & echo.
echo ******************************************************************************* & echo.
echo Install Location: !Dir[%%n]! & echo.
echo Setup Location: !File[%%n]! & echo.
start "" /w /b !File[%%n]!
)
SET /A counter=%counter%-1
echo %counter% Programs to be installed.
)
goto loop
:end
echo Everything already installed.
pause
было бы проверить корневую папку C: \ Setup \ 3 файлов, являются:Пакетный скрипт, который автоматически выполняет автоматической установки (ошибки обратно к CMD)
nmap.lnk
nmap.exe
nmap.loc
wireshark.lnk
wireshark.exe
wireshark.loc
(содержащий установки по умолчанию реж of wirehark, используемый для проверки того, присутствует ли программа в директории программных файлов.)
im Использование этого в качестве основы для распространения большего количества программ в пользовательские образы окон, а не для получения реестра для каждой программы.
Основная проблема, связанная с тем, что ошибки возвращаются к cmd, у меня возникли проблемы, когда арифметика не применялась, так как я вычитал из var, следующее эхо не отражало это.Если у кого есть альтернативное решение для цикла, используемого в разделе установки, которое было бы оценено.
и чернила будут иметь параметры/s без звука.
Я собирался добавить к нему опцию, чтобы очистить после себя после установки тоже.
Возможно, вам потребуется объяснить ваши три файла и их цель.Кажется, нет проверки, если что-то установлено только для проверки наличия имени .loc-файла в текущем каталоге. – Compo
Вы находитесь внутри блока кода. Вам нужно использовать задержанное расширение. – Squashman