windows - 找出环境变量是否包含子字符串

标签 windows batch-file

我需要查明某个环境变量(比方说 Foo)是否包含 Windows 批处理文件中的子字符串(比方说 BAR)。有没有办法只使用批处理文件命令和/或 Windows 默认安装的程序/命令来做到这一点?

例如:

set Foo=Some string;something BAR something;blah

if "BAR" in %Foo% goto FoundIt     <- What should this line be? 

echo Did not find BAR.
exit 1

:FoundIt
echo Found BAR!
exit 0

要使这个简单的批处理文件打印“Found BAR”,上面标记的行应该是什么?

最佳答案

当然,只需使用旧的 findstr:

echo.%Foo%|findstr /C:"BAR" >nul 2>&1 && echo Found || echo Not found.

除了 echoing 之外,您还可以在那里的其他地方分支,但我认为如果您需要基于此的多个语句,则以下内容更容易:

echo.%Foo%|findstr /C:"BAR" >nul 2>&1
if not errorlevel 1 (
   echo Found
) else (
    echo Not found.
)

编辑:记下jeb's solution以及哪个更简洁,尽管它需要额外的心理步骤来弄清楚它在阅读时的作用。

关于windows - 找出环境变量是否包含子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5491383/

相关文章:

c - 我的 C 文件正在写入随机字符

windows - Windows 闪存驱动器上出现一个 _disk_id.pod 文件

windows - 哪种类型的特定访问权限 (ACCESS_MASK) 对 SE_LMSHARE 有效?

python - 如何在 Python 2 上使用 psutil.Popen 和 unicode 命令

batch-file - 批量编写实时进度条

c++ - 如何从其他exe程序运行Devenv.exe?

windows - 在 Windows 中从批处理文件执行命令后,如何防止 PuTTY shell 自动退出?

windows - 从命令行启用/禁用 Windows 10 中的设备

batch-file - 如何使用批处理文件从虚幻引擎 .uproject 文件生成 Visual Studio 项目文件?

powershell - 我需要对CSV文件中的数据列进行哈希处理(模糊处理)。首选脚本