以下脚本命令检查命令行参数%1与固定字ala
的匹配情况 <code>
@echo off
set one=%1
set two=%2
If NOT "%one%"=="%one:ala=%" ( echo the first argument contains the word "ala")
else ( echo no matching ! )
</code>
如何用命令行中的参数%2替换固定字“ala”。 (因为简单的替换ala与%2不起作用)。 有没有更好的解决方案来比较参数字符串?
答案 0 :(得分:0)
您需要使用延迟扩展来完成该类型的字符串替换。
@echo off
setlocal enabledelayedexpansion
set "one=%~1"
set "two=%~2"
If NOT "%one%"=="!one:%two%=!" (
echo the first argument contains the word "%two%"
) else (
echo no matching
)
你也可以使用CALL命令的技术在没有延迟扩展的情况下完成它。
@echo off
set "one=%~1"
CALL set "two=%%one:%~2=%%"
If NOT "%one%"=="%two%" (
echo the first argument contains the word "%two%"
) else (
echo no matching
)
答案 1 :(得分:0)
@ECHO OFF
SETLOCAL
ECHO %~1|FIND "%~2">NUL
IF ERRORLEVEL 1 (
ECHO "%~2" NOT found IN "%~1"
) ELSE (
ECHO "%~2" WAS found IN "%~1"
)
GOTO :EOF
使用find
工具。这可以避免delayedexpansion
但相对较慢。