提问人:W365c33n 提问时间:2/16/2023 最后编辑:CompoW365c33n 更新时间:2/16/2023 访问量:111
cmd:将最早的 creationdate 从“WMIC process where name='<name.exe>' get creationdate” 传递到一个进程有 >1 个日期输出的变量中
cmd: Pass oldest creationdate from "WMIC process where name='<name.exe>' get creationdate" into a variable where one process has >1 date outputs
问:
最终目标是删除属于最早创建的命名进程的临时文件。
当前命令结果:
>wmic process where name='<xyz.exe>' get creationdate
CreationDate
20230209140434.535724+000
20230209140527.350080+000
如何挑出上述最旧的变量,并将其传递到变量中?
我尝试了这里给出的例子
更新
我的代码:
@echo off
for /f %%i in ('wmic process where name^="<xyz.exe>" get creationdate') do (
for %%b in (%%i) do (
set "TS=%%i"
)
)
echo TimeStamp : "%TS%"
以上结果是传递最新的创建日期。
更新2
首先尝试了以下操作:
@echo off
for /f %%i in ('wmic process where name^="xyz.exe" get creationdate ^| sort) do (
for %%b in (%%i) do (
set "TS=%%i"
)
)
echo TimeStamp : "%TS%"
以上返回:
TimeStamp : CreationDate
如果我将代码更改为:
@echo off
for /f %%i in ('wmic process where name^="xyz.exe" get creationdate ^| sort /r) do (
for %%b in (%%i) do (
set "TS=%%i"
)
)
echo TimeStamp : "%TS%"
这将返回我正在寻找的日期。
但是,为什么 Update2 中的第一组代码会返回标头?
答: 暂无答案
评论
sort.exe
do
set "TS=%%b"
set "TS=%%i"