好的,我已经安装了 Dropbox,但它不符合我的要求,所以我使用 Revo Pro 卸载了它。
但是,当我打开任务管理器时,我的计算机中仍然有与其相关的进程在运行,因此我决定进行批处理来查找并删除与其相关的所有文件。
@echo off
cd c:\
:a
set /p a=Phrase that might be realted to it
for /r %%d IN (*.*) DO (
(
findstr /i /m /c:%a% "%%d"
if "%errorlevel%"=="0" del "%%d"
echo %errorlevel%
)
)
pause
问题是:当我使用循环运行 findstr 时,即使分析文件中的变量“%a%”不匹配,%errorlevel% 返回 0。但是当我单独使用 findstr 时,没有匹配的 %ERRORLEVEL对于匹配,% 返回 1 和 0。
如果我用它,我会删除我所有的电脑文件哈哈。代码有什么问题吗?
在括号内的一系列陈述中,任何%var%
被动词控制该语句序列时该变量的值替换(或block
) 遇到。
这里,块是由语句控制的整个语句序列for
. %errorlevel%
被以下状态取代errorlevel
当时的for
遇到过,所以可能0
.
如果你使用
findstr /i /m /c:%a% "%%d"
if not errorlevel 1 del "%%d"
echo %errorlevel%
那么run-time
的价值errorlevel
使用(即,当它通过循环操作改变时)并且命令的意思是“如果errorlevel
不是 (1或大于1) 做这个...”
The findstr
将设置errorlevel
到 0 上found
, 1
on not found
and 2
for file not found
(IIRC) 因此 NOT(1 或大于 1)仅选择 0。请注意,在某些深奥的情况下,errorlevel
可能会变成负数,但经过一段时间后findstr
我相信 0..2 是允许的范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)