微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批处理 – 带有错误级别条件的 Findstr,引号?

如何解决批处理 – 带有错误级别条件的 Findstr,引号?

我有一个批处理文件脚本,我将其编写为用于连接到我的网络共享的接口。在这一点上它非常简单。它有一个我的共享列表,我想将它与正在使用的网络共享进行比较,如果找到,则禁用该共享作为选项。以下代码片段是 for 循环的一部分,该循环遍历列表中的共享数量并列出它们。

rem

上面的 if %errorlevel%删除以测试问题。 这里的想法是使用 findstr /x 条件来捕捉匹配。股票用双引号回应。例如,如果安装了照片,则照片和照片 2 都将匹配,这是不可取的。 由于共享具有相似的名称并且添加了带有空格的数字,因此我需要完全比较字符串,因此我尝试使用 $(window).scroll(function () { //your code goes here }) 开关,但这根本不起作用。不确定带双引号的条目是否会干扰。删除列表中的双引号会产生无法打开空格后的数字的错误。我是否以正确的方式处理这个问题?

解决方法

我可以假设一种稍微不同的方法吗?

@echo off 
setlocal enabledelayedexpansion
set "list[0]=\\xxx.xxx.x.xx\photo"
set "list[1]=\\xxx.xxx.x.xx\photo 2"
for /l %%n in (0,1,2) do (
  net use |findstr ilc:"  !list[%%n]!  " >nul && (
    echo found "!list[%%n]!",do command1
  ) || (
    echo no match for "!list[%%n]!" do command2
  )
)

对代码的更改:

  • 使用 net use 而不是 wmic,因为 wmic 输出 Unicode,这是我们必须处理的。而 net use 的速度要快得多。
  • 使用条件运算符 &&|| 而不是 errorlevel
  • 使findstr更加安全和
  • 丢弃了 findstr 的输出。
  • 更正了 set 语法,不包括值的引号。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。