batch-file - 如何在 Windows cmd 中循环执行任务,如果任务不在列表中,则仅输出任务?
问题描述
我正在尝试将不需要的任务输出到 Windows 命令行。最终的结果应该是我基本上只需点击一下按钮就可以杀死所有不需要的任务。但为了避免任何问题,我现在输出任务名称。我知道还有其他方法,比如在msconfig
or上禁用它们regedit
,但现在这就是我想要的。
问题是我已经很久没有使用控制台了,这让我有点困惑。我有下面的代码输出所有正在运行的任务,但它不会停止输出mylist
数组中的任务。我认为问题在于我的嵌套for
循环,但我不知道将两个数组传递给一个列表的任何其他方法,以便我可以检查它们。任何帮助将不胜感激。
@echo off
set mylist=csrss.exe, dwm.exe, System, smss.exe Rem<<List
for /f "tokens=1" %%a in ('tasklist') do ( Rem<<This returns process name
for %%b in ('%mylist%') do ( Rem<<b is MEANT to be each process in list
if not %%a == %%b ( Rem<<If anything in tasklist is in mylist, don't include it
echo %%a) Rem<<Output processes NOT in mylist.
)
)
pause
解决方案
在以下帮助下更容易findstr
:
@echo off
set "mylist=csrss.exe dwm.exe System smss.exe"
for /f "tokens=1" %%a in ('tasklist^|findstr /biv "%mylist%"') do echo %%a
pause
findstr
开关:
- b = 行首
- i = 忽略大小写(可选)
- v = 排除给定字符串
推荐阅读
- java - 如何将对象作为参数传递给弹簧方面?
- json - 将表数据转换为 Jsons - 您为此类任务选择什么数据库?
- git - Jenkins 作业无法从 GIT 创建更改日志
- variables - 从 netCDF 中的变量重写属性
- python - 是否可以使用 Spotipy 更改播放列表图像?
- java - 尝试使用 Java 更新 CSV 文件,但文件大小不断增加,尽管代码清空了其内容
- git - Git:安全地将我的(未推送的)提交移动到不同的分支?
- php - Woocommerce 从产品页面获取类别 ID
- amazon-web-services - AWS - 使用 cloud-init(用户数据字段)激活 conda 环境
- numpy - numpy - 为什么 np.multiply.reduce([], axis=None) 结果为 1?