windows - 批处理文件,检查字符串是否包含另一个具有特殊字符的字符串

标签 windows batch-file

我正在尝试编写一个批处理文件,将一些项目附加到代理异常(exception)列表中。

我目前有这个:-

echo off
setlocal

for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride') do set "var=%%b"

set "devlocal=;*.dev.local;"
set "local=*.local;"

set "exceptions=%var%%devlocal%%local%"

echo "%exceptions%"

pause

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyOverride /t REG_SZ /d "%exceptions%" /f

pause

这运行正常。但是我想做的是首先检查异常中是否已经存在 *.dev.local ,如果存在则不要添加它。 *.local.

我似乎无法使用 FINDSTR,因为它不支持特殊字符,例如 *

最佳答案

如果术语不存在,这是添加术语的一种方法。
它效率不高,但对于两个学期来说它会很好地工作。

echo "%var%"|findstr /L /i "*.dev.local" >nul || set "var=%var%;*.dev.local;"
echo "%var%"|findstr /L /i "*.local"     >nul || set "var=%var%;*.local"

关于windows - 批处理文件,检查字符串是否包含另一个具有特殊字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754040/

相关文章:

Java 在代码块之间跳转

windows - 如何在 Rust cargo 构建脚本上调用批处理构建器脚本?

visual-studio - Visual Studio 路径的环境变量?

regex - 如何用命令行替换文本文件中的每个前缀?

windows - RHC 设置在 OpenShift 中失败 - UTF8 - SSH

c# - 如何在 UWP 应用中以编程方式调暗屏幕

.net - 如何使用 C# 在 Windows 窗体中创建 F1 帮助

windows - 为 VS 命令行编译器设置正确的路径

c++ - Windows 服务生成的进程运行速度比 GUI 生成的进程慢 3 到 4 倍

windows - 批处理 For 循环以获取第一个值