Board logo

标题: [系统相关] 【已解决】批处理导出当前电脑所有进程[windows] [打印本页]

作者: aabout2008    时间: 2024-11-2 05:46     标题: 【已解决】批处理导出当前电脑所有进程[windows]

本帖最后由 aabout2008 于 2024-11-21 09:35 编辑

电脑是Win7系统,想导出当前电脑正在运行的所有进程。
要实现的效果:
运行批处理后,在当前目录下能生成:白名单.txt,后台运行批处理,不显示窗口。

在网上搜索到的都是错误的,实在是麻烦各位了!!
作者: luckboy45    时间: 2024-11-2 07:10

@echo off
tasklist >白名单.txt

一句命令一秒就完成了,窗口一闪而过何须隐藏后台运行,你测试下有用没有,我不是WIN7系统。
作者: Batcher    时间: 2024-11-2 12:58

回复 1# aabout2008


请把你搜到的代码、执行报错截图发出来我看看?
如果需要上传文件,请用使用网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: aloha20200628    时间: 2024-11-2 18:20

本帖最后由 aloha20200628 于 2024-11-21 11:54 编辑

回复 1# aabout2008

直接运行批处脚本 *.bat 或 *.cmd 均会导致cmd窗口开启,规避方法一般是用 vbs 或 jscript 脚本套壳,隐藏批处脚本在后台运行,以下是 jscript 版本(直接达成5楼新要求),仅供参考
以下代码存为 test.js 运行:
  1. WSH.createObject('WScript.shell').run('cmd /c tasklist /fo csv|more +1>0.0', 0, true);
  2. fso=WSH.createObject('scripting.filesystemobject');
  3. fr=fso.opentextfile('0.0',1), fw=fso.opentextfile('白名单.txt',2,true);
  4. while(!fr.AtEndOfStream) fw.writeline(fr.readline().split(',')[0].slice(1,-1));
  5. fr.close(), fw.close(), fso.deletefile('0.0'), WSH.quit();
复制代码

作者: aabout2008    时间: 2024-11-2 19:21

回复 2# luckboy45
运行后的效果不是预期的:有映像名称,PID会话名,会话# 内存使用,只需要进程名。比方说QQ.exe  
不用在TXT文档里显示大小和其它无关的。
作者: luckboy45    时间: 2024-11-2 19:28

回复 5# aabout2008

wmic process get Description >>白名单.txt
作者: aloha20200628    时间: 昨天 10:04

本帖最后由 aloha20200628 于 2024-11-21 11:48 编辑

回复 5# aabout2008

批处一行流版本...
  1. @(for /f "delims=," %%v in ('tasklist /fo csv^|more +1') do echo,%%~v)>白名单.txt
复制代码
按照5楼的新要求订正了4楼代码,可以隐藏运行批处代码的窗口...





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2