您好我正在尝试制作一个静默安装某些应用程序的脚本。 我需要读取一个名为list.txt的文本文件。在文件中有我将默默安装的应用程序,每行一个。但是如果程序行没有安装文件,我不需要尝试静默安装。并保存未安装在其他文本文件中的应用程序的名称。这就是我遇到的问题,我无法使用%errorlevel%,!errorlevel!或错误级别1。
那是scrpit:
@ECHO OFF
SetLocal EnableDelayedExpansion EnableExtensions
set count=0
FOR /F "delims=·" %%A IN (list.txt) DO (
IF !count! EQU 0 (
findstr /I /C:"thunderbird" %%A
IF !errorlevel! == 0 (
ECHO Installing [ %%A ]
::"%%A" /S
set count=1
)
)
IF !count! EQU 0 (
findstr /I /C:"firefox" %%A
IF !errorlevel! == 0 (
ECHO Installing[ %%A ]
::"%%A" /S
set count=1
)
)
IF !count! EQU 0 (
ECHO %%A >> temp.txt 2>NUL
)
set count=0
)
list.txt的内容是:
Thunderbird 24.0.1.exe
Cantinstall.exe
Firefox 25.exe
%errorlevel%和!errorlevel!永远是1
解决方案归功于MC ND的评论:
@ECHO OFF
SetLocal EnableDelayedExpansion EnableExtensions
set count=0
FOR /F "delims=·" %%A IN (lista.txt) DO (
IF !count! EQU 0 (
echo Installing [ %%A ] | findstr /I /C:"thunderbird"
IF not errorlevel 1 (
::"%%A" /S
set count=1
)
)
IF !count! EQU 0 (
echo Installing [ %%A ] | findstr /I /C:"firefox"
IF not errorlevel 1 (
::"%%A" /S
set count=1
)
)
IF !count! EQU 0 (
ECHO %%A >> temp.txt 2>NUL
)
set count=0
)
输出temp.txt:
cantinstall.exe