批处理 - 将变量与正则表达式进行比较

2024-01-30

我正在编写一个批处理脚本,必须检查计算机上是否安装了某些程序。为此,我执行programName --version我将输出存储在变量中。问题是当我尝试与正则表达式进行比较时(只是为了知道该程序是否存在于机器中)。我正在尝试这段代码,但不起作用

>output.tmp node --version
<output.tmp (set /p hasNode= )
if "%hasNode%" == "[vV][0-9.]*" (echo Has node) else (echo You have to install node)

如果我更改此命令输出的正则表达式可以正常工作,那么我认为我对正则表达式的使用不当(我已经检查过它并且对于命令的输出来说没有问题)

谢谢你们的帮助


Batch/cmd 不直接支持正则表达式。你必须使用findstr为此,例如:

echo %node% | findstr /r "[vV][0-9.]*" >nul 2>&1 && (echo contains) || (echo does not contain) or

echo %node% | findstr /r "[vV][0-9.]*" >nul 2>&1 if errorlevel 1 (echo does not contain) else (echo contains)

这个技巧将比较委托给findstr然后使用它的返回代码(错误级别)。
(请注意正则表达式findstr支持也相当有限,并且有一些怪癖,更多信息http://ss64.com/nt/findstr.html http://ss64.com/nt/findstr.html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理 - 将变量与正则表达式进行比较 的相关文章

  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • 正则表达式 - 匹配不包含字符串的模式

    我对正则表达式很陌生 并且一直在寻找方法来做到这一点 但没有成功 给定一个字符串 我想删除以 abc 开头 以 abc 结尾且中间不包含 abc 的任何模式 如果我做 abc abc abc 它将匹配以 b 开头 以 abc 结尾并且中间包
  • 在 OSX 和 GNU 中使用“find”删除带有数字的文件名

    我正在尝试搜索一个文件并删除名称中包含数字的类似文件 我的文件 txt from myfile 00 04 version txt myfile 00 txt find E iregex myfile 0 9 1 txt 删除 myfile
  • 如何在安装过程中运行“.bat”文件?

    在安装项目中 诸如 exe dll js vbs 之类的可执行文件是可以接受的 但无法运行 bat自定义操作中的文件 问题是如何运行 bat安装过程中的文件 好吧 经过大量搜索和反复试验 我解决了这个问题 我不确定这是否是最好的方法 但它确
  • 使用 sed 删除非字母数字字符

    我正在尝试验证一些输入以删除一组字符 只允许使用字母数字字符加 句点 下划线 连字符 我测试了正则表达式 w here http gskinner com RegExr http gskinner com RegExr 它与我想要删除的内容
  • 如何在 sed 中转义方括号[重复]

    这个问题在这里已经有答案了 我正在使用 grep 和 sed 解析遗留的 C 代码 当尝试替换方括号时 发生了一些奇怪的事情 以下代码替换方括号效果很好 echo xyx xzx xyx sed s g 结果是 xyx xzx xyx 当我
  • 正则表达式允许零,只要它不是第一个数字[重复]

    这个问题在这里已经有答案了 昨天我在这里发布了一个问题正则表达式允许 null 或 1 到 9 数字 https stackoverflow com questions 40354842 regular expression allow n
  • 如何成功地用 XML 中的批处理替换文本

    我尝试使用批处理在 XML 页面中替换字符串 但无法成功完全替换它 我有这个批处理代码 echo off setlocal EnableDelayedExpansion set search logLevel 3 set replace l
  • 正则表达式将单词的开头和结尾与元音匹配

    我正在尝试以下操作Regex aeiou aeiou 但它不起作用 我测试了 abcda 并且不匹配 它应该只是 aeiou aeiou 额外的 您需要第二个字符是一个文字点 例如 a hello 但由于您的测试用例 abcda 不包含这样
  • bash 支持字边界正则表达式吗?

    我试图在再次添加该单词之前匹配列表中是否存在该单词 以避免重复 我正在使用 bash 4 2 24 并尝试以下操作 foo bmyword b also foo
  • 你能挽救我的负面回顾示例来传达数字吗?

    在 高级正则表达式 一章中掌握 Perl http oreilly com catalog 9780596527242 我有一个损坏的示例 我无法找到一个很好的修复方法 这个例子可能为了自己的利益而试图变得太聪明 但也许有人可以帮我解决它
  • [Regex]::Replace() 和 -replace 有什么区别?

    我明白了之间的区别 Replace and replace 但是什么是 replace and Regex Replace 我测试了以下两个代码 但对我来说结果完全相同 我还提到了 PowerShell Cookbook O reilly
  • 从时间列表中查找最接近的时间

    所以 这是场景 我有一个带有创建时间的文件 我想从该文件的创建时间最接近或相等的时间列表中选择一个时间 完成此操作的最佳方法是什么 var closestTime listOfTimes OrderBy t gt Math Abs t fi
  • 什么是仅匹配空字符串的正则表达式?

    有很多关于正则表达式的帖子来匹配潜在地空字符串 但我找不到任何提供正则表达式的字符串only匹配一个空字符串 我知道 将匹配任何行的开头并且 将匹配任何行的结尾以及字符串的结尾 像这样 匹配的内容远不止空字符串 如 n foobar n n
  • PHP解析xml文件错误

    我正在尝试使用 simpleXML 来获取数据http rates fxcm com RatesXML http rates fxcm com RatesXML Using simplexml load file 我有时会遇到错误 因为这个
  • 如何获取字符串的最后一个单词?

    我有一个批处理文件 它以文件路径作为参数 set filePath 1 现在 假设文件路径是 C Temp Folder 我想设置Folder在一个新变量中 我怎样才能做到这一点 我在网上搜索了一下 所有的解决方案都是这样的 for A i
  • 在 Javascript 中获取第一个数字出现后的子字符串

    我正在尝试提取第一个数字之后 并包括 的字符 ABC 123SD gt 123SD 123 gt 123 123SD gt 123SD ABC gt 我当前的解决方案如下 var string1 ABC 123SD var firstDig
  • 批处理脚本生成特定年月、周和工作日的文件夹

    最近几天我一直在寻找这个问题的答案 有很多关于全年批量文件夹创建的答案 但不够具体 所以我非常感谢答案 所以我想要这样的文件夹结构 如下所示 2017 for example main folder for year 2017 01 JAN
  • 字符串中的注释和注释中的字符串

    我正在尝试使用 Python 和 Regex 计算 C 代码中包含的注释中的字符数 但没有成功 我可以先删除字符串以删除字符串中的注释 但这也会删除注释中的字符串 结果会很糟糕 是否有机会通过使用正则表达式来询问不匹配注释中的字符串 反之亦
  • Pure Bash 替换捕获组

    我有这个示例字符串 test string 13A6 该字符 数字可以是从 0 到 9 以及从 A 到 F 我想要这个输出 1 3 A 6 我有这个工作 result echo test string sed s g 我想在没有 sed 的

随机推荐

  • 使用 msiexec 卸载特定功能

    我安装了一个具有两个功能 FirstFeature 和 SecondFeature 的测试应用程序 我只想从应用程序中删除一项功能 SecondFeature 我尝试在命令行中使用 REMOVE 属性 这是用于删除 SecondFeatur
  • 尝试使用JAVA读取Scroll Lock状态

    我有以下代码行 我正在尝试读取滚动锁的状态 当我的程序启动时 我得到滚动锁定的状态 不过我愿意实时获取状态 请指导以下内容 package assignment import java awt Toolkit import java awt
  • .NET 3 中的 System.Random 有多随机?

    我目前正在编写一个简单的密码生成器 C 为此我需要一些随机数 是否可以简单地使用Random http msdn microsoft com en us library system random aspx NET 附带的类或者是否存在任何
  • eclipse 错误地将包解释为“资源”或源文件夹

    我将现有的源代码树作为 Eclipse Java 项目导入 当我这样做时 我会在类 例如 mycompany logging LogEntry 中收到如下错误 The package mycompany logging does not m
  • 从类似 CSV 的文件创建哈希

    我有一个产品文件 列出了商品编号 产品和价格 我想读取此文件并将其初始化为散列 其中项目 为键 产品和价格为值 这是我的文件 199 Shoes 59 99 211 Shirts 19 99 245 Hats 25 99 689 Coats
  • RadEditor 需要在 web.config 中注册 HttpHandler

    当我将此代码添加到我的aspx
  • 将 CSR 专有名称字段作为参数传递给 OpenSSL

    如何在不需要用户输入的情况下生成 CSR 例如从应用程序内生成 CSR 通过 subj 参数传递主题 openssl req new key
  • 如何最好地重载运算符 < > <= >= 但只编写一两个比较函数? [复制]

    这个问题在这里已经有答案了 我有一个具有 std string 类型属性的类 我想通过比较属性为类提供一些比较运算符函数 例如 我的问题是 任何简单的方法或工具 1 只需编写一两个函数 例如运算符 2 甚至更简单 因为类比较取决于其类型属性
  • 致命错误:在 /my/path 中找不到类“Memcached”

    当我尝试时 mc new Memcached I get Fatal error Class Memcached not found in my path phpinfo 表示 etc php5 apache2 conf d 20 memc
  • 如何使用“libsu”库(或adb)在Android Q上安装拆分的APK文件?

    背景 使用 root 我知道对于单个 APK 文件 我们可以使用 libsu 库 here https github com topjohnwu libsu 这样安装 val installResult Shell su pm instal
  • 如何在 Playwright Python 中获取元素的属性值

    我在一个项目中使用 Playwright Python 我正在努力获得 href 元素的属性值 For Selenium I used el driver find element by xpath a link el get attrib
  • Gradle - 将目录添加到类路径

    我的应用程序要求 config当它在目录下查找配置文件时 目录在类路径上可用 我目前的依赖项配置如下 尽管这可能不是使目录可供我的应用程序使用的正确方法 dependencies runtime compile dependencies p
  • JavaScript 中的布尔对象和布尔数据类型有什么区别?

    布尔类型有两个字面量 值 true 和 false 不要混淆原始布尔值 值 true 和 false 与 true 和布尔值的假值 目的 布尔对象是 原始布尔值的包装 数据类型 有关更多信息 请参阅布尔对象 信息 这是什么意思 布尔对象和布
  • mongodb:获取特定文档然后获取其余文档的最佳方式

    假设我有 1000 个文档 每个文档都有 user id text 现在 我想提取所有这些文档 但首先从一些特定用户 给定用户 ID 数组 中提取文档 然后再提取所有其余文档 我正在考虑如果 user id 存在于特定用户数组中 使用作用域
  • 未找到具有有效签名身份(即证书和私钥对)的配置文件

    是的 我知道这个问题有很多重复 但我尝试了其他人建议的所有内容 此时我没有重复项 我从头开始撤销并重新生成了证书和密钥 我将我的证书与相应的密钥配对 我面临的问题如下 如果我尝试在构建设置中使用发行配置文件进行发布 我会不断收到标头中指定的
  • 如何将 xml 字符串读入 XMLTextReader 类型

    我有一个 XML 字符串 我需要将此字符串转换为XML文本阅读器 System Xml XMLTextReader 输入 dotnet 我使用了以下代码 string szInputXml
  • 如何编辑 JavaScript 警报框标题?

    我正在 C NET 页面中使用以下代码生成 JavaScript 警报 Response Write 它显示一个标题为 来自网页的消息 的警告框 标题可以修改吗 不 你不能 这是一项安全 反网络钓鱼功能
  • Solr:如何搜索多个字段

    我正在使用 solrnet 我有标题和描述字段 我需要同时搜索这两个字段 我该怎么做呢 Jayendra 的答案是正确的 但如果您想在索引时 copyFields 不聚合单个字段中的数据并希望在查询时执行此操作 而不是使用标准处理程序而不是
  • 选项卡行为 Resharper Intellisense 选项

    像 Resharper 这样的产品有很多设置 但我似乎无法找到正确的设置来获得我想要的确切行为 我试图改变的行为是这样的 假设我想要的最终结果是 但目前的线路是 正如你所期望的 我开始输入 一个选项卡后我得到这个 但我希望它成为 有谁知道如
  • 批处理 - 将变量与正则表达式进行比较

    我正在编写一个批处理脚本 必须检查计算机上是否安装了某些程序 为此 我执行programName version我将输出存储在变量中 问题是当我尝试与正则表达式进行比较时 只是为了知道该程序是否存在于机器中 我正在尝试这段代码 但不起作用