Fanr

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  395 随笔 :: 0 文章 :: 184 评论 :: 48万 阅读
复制代码
USE master
go
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp
CREATE TABLE #temp
(
id
INT IDENTITY(1, 1)
NOT NULL
,Proc_info
NVARCHAR(MAX) NULL
,
CONSTRAINT pk_id PRIMARY KEY ( id ASC )
)
--insert data into temp table
INSERT INTO #temp
( Proc_info )
EXEC master..xp_cmdshell 'tasklist /v'

--delete the wrong records
DELETE FROM #temp
WHERE Proc_info IS NULL
OR Proc_info LIKE '%==========%'
OR ID = 2
GO
--create a splite function
CREATE FUNCTION F_split_V2 ( @S NVARCHAR(4000), @i INT )
RETURNS NVARCHAR(100)
AS
BEGIN
IF @i = 1--Image_name
BEGIN
IF PATINDEX('%.exe%', @s) = 0
SET @s = RTRIM(LEFT(@s, PATINDEX('%[0-9]%', @s) - 1))
ELSE
SET @s = RTRIM(LEFT(@s, PATINDEX('%.exe%', @s) + 4))
END
ELSE
IF @i = 2--Pid
BEGIN
IF PATINDEX('%.exe%', @s) = 0
SET @s = STUFF(@s, 1, PATINDEX('%[0-9]%', @s) - 1, '')
ELSE
SET @s = LTRIM(SUBSTRING(@s,
PATINDEX('%.exe%', @s) + 4,
LEN(@s)))

SELECT @s = RTRIM(LEFT(@s, PATINDEX('%[^0-9]%', @s) - 1))
END
ELSE
IF @i = 3--Session_name
BEGIN
IF PATINDEX('%.exe%', @s) = 0
SET @s = STUFF(@s, 1, PATINDEX('%[0-9]%', @s) - 1,
'')
ELSE
SET @s = LTRIM(SUBSTRING(@s,
PATINDEX('%.exe%', @s)
+ 4, LEN(@s)))
SELECT @s = STUFF(@s, 1, PATINDEX('%[^0-9]%', @s) - 1,
'')
,
@s = RTRIM(LEFT(@s,
PATINDEX('%[0-9]%', @s) - 1))
END
ELSE
IF @i = 4--Session#
BEGIN
IF PATINDEX('%.exe%', @s) = 0
SET @s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1, '')
ELSE
SET @s = LTRIM(SUBSTRING(@s,
PATINDEX('%.exe%', @s)
+ 4, LEN(@s)))
SELECT @s = STUFF(@s, 1,
PATINDEX('%[^0-9]%', @s) - 1,
'')
,
@s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1, '')
,
@s = RTRIM(LEFT(@s,
PATINDEX('% %', @s) - 1))
END
ELSE
IF @i = 5--memory
BEGIN
IF PATINDEX('%.exe%', @s) = 0
SET @s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1,
'')
ELSE
SET @s = LTRIM(SUBSTRING(@s,
PATINDEX('%.exe%',
@s) + 4, LEN(@s)))

SELECT @s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1,
'')
,
@s = STUFF(@s, 1,
PATINDEX('%[^0-9]%', @s)
- 1, '')
,
@s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1,
'')
,
@s = STUFF(@s, 1,
PATINDEX('%[1-9]%', @s) - 1,
'')
,
@s = RTRIM(LEFT(@s,
PATINDEX('%k%', @s)
- 1))
END
ELSE
IF @i = 6--user_name
SELECT @s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1,
'')
,
@s = STUFF(@s, 1,
PATINDEX('%[^0-9]%', @s)
- 1, '')
,
@s = STUFF(@s, 1,
PATINDEX('%[0-9]%', @s) - 1,
'')
,
@s = STUFF(@s, 1,
PATINDEX('%[1-9]%', @s) - 1,
'')
,
@s = RTRIM(SUBSTRING(@s,
PATINDEX('%\%',
@s) + 1, 18))
ELSE
IF @i = 7--cup_time
SELECT @s = SUBSTRING(@s,
PATINDEX('%[0-9]:[0-9][0-9]:[0-9][0-9]%',
@s), 8)
ELSE
SELECT @s = RIGHT(@s,
CHARINDEX(' ',
REVERSE(@s), 3)
- 1)
RETURN @s
END
go

SELECT dbo.F_split_V2(Proc_info, 1) AS image_name
,dbo.F_split_V2(Proc_info,
2) AS PID
,dbo.F_split_V2(Proc_info,
3) AS session_name
,dbo.F_split_V2(Proc_info,
4) AS session#
,dbo.F_split_V2(Proc_info,
5) + 'K' AS Memory
,dbo.F_split_V2(Proc_info,
6) AS User_name
,dbo.F_split_V2(Proc_info,
7) AS cpu_time
,
'xp_cmdshell ''taskkill -IM ' + dbo.F_split_V2(Proc_info, 1) + ' /f''' AS script
FROM #temp
复制代码
posted on   Fanr_Zh  阅读(895)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示