ryn*_*ynd 7 windows command batch-file
我正在为Windows编写批处理文件并使用命令7z
(7-Zip).我把它的位置放在PATH中.有没有相对简单的方法来检查命令是否可用?
Sac*_*eph 22
不要不执行命令检查其可用性(即在找到PATH
环境变量).where
改为使用:
where 7z.exe >nul 2>nul
IF NOT ERRORLEVEL 0 (
@echo 7z.exe not found in path.
[do something about it]
)
Run Code Online (Sandbox Code Playgroud)
的>nul
和2>nul
防止显示的结果where
命令给用户.直接执行程序有以下问题:
您还可以定义一个例程,它可以帮助用户确保他们的系统满足要求:
rem Ensures that the system has a specific program installed on the PATH.
:check_requirement
set "MISSING_REQUIREMENT=true"
where %1 > NUL 2>&1 && set "MISSING_REQUIREMENT=false"
IF "%MISSING_REQUIREMENT%"=="true" (
echo Download and install %2 from %3
set "MISSING_REQUIREMENTS=true"
)
exit /b
Run Code Online (Sandbox Code Playgroud)
然后使用它,如:
set "MISSING_REQUIREMENTS=false"
CALL :check_requirement curl cURL https://curl.haxx.se/download.html
CALL :check_requirement svn SlikSVN https://sliksvn.com/download/
CALL :check_requirement jq-win64 jq https://stedolan.github.io/jq/download/
IF "%MISSING_REQUIREMENTS%"=="true" (
exit /b
)
Run Code Online (Sandbox Code Playgroud)
如果未找到该命令,尝试执行7z.exe
将返回9009。%errorlevel%
你可以检查一下。
7z.exe
if %errorlevel%==9009 echo Command Not Found
Run Code Online (Sandbox Code Playgroud)
注意:此解决方案对于这个特定7zip
用例是可行的,并且可能适用于许多其他用例。但作为一般规则,执行命令来确定它是否存在可能是有害的。因此,请确保您了解执行正在检查的命令的效果,并谨慎使用此方法。
归档时间: |
|
查看次数: |
5091 次 |
最近记录: |