如何解决批处理 – 带有错误级别条件的 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 举报,一经查实,本站将立刻删除。