Windows Management Instrumentation 命令行 WMIC 批量提取属性

标签 windows batch-file command-line scripting wmic

我有一个问题。

我想从不同的 PC 中提取 - 从始终相同的路径(比如 D:\Data 或 D:) - 从扩展名为 *.raw 的文件中提取一些属性。

我想将一个 txt 或 csv 文件保存到另一个文件夹(比如网络文件夹 K:\Results),其中包含 *raw 文件的名称及其属性。

我主要对“创建”、“上次修改”、“上次访问”感兴趣。

我刚刚发现了 WMIC 命令,我想使用它,但我真的不知道如何编写一个我可以从 PC 上运行的脚本:

1 – 它获取 D:\

中的 *.raw 文件列表

2 – 它从所有这些中提取 Caption,CreationDate,LastModified...

3 – 它在 K:\Results\

中为我保存了具有特定名称的列表

有人可以帮助我吗?

我正在尝试了解有关此 Windows Management Instrumentation 命令行的更多信息,但我仍在:

wmic datafile where (drive="C:" and path="\\temp\\") get Caption,CreationDate,LastModified

我可能需要很长时间才能解决我的问题。

提前谢谢你。

最佳答案

假设您的 c:\temp 文件夹中有一些 *.raw 文件,所以

你可以这样试试:

@echo off
Set Output=Result.txt
Set Ext=raw
If Exist %OutPut% Del %OutPut%
setlocal enabledelayedexpansion
for /f "Skip=2 tokens=2-4 delims=," %%a in ('wmic datafile where (drive^="C:" and path^="\\temp\\" AND Extension^="%Ext%"^) get Caption^,CreationDate^,LastModified /format:csv') Do (
    set "file=%%a" 
    set "CreationDate=%%b"
    set "LastModified=%%c"
    (
        echo "!file!"
        echo CreationDate :
        Call:ConvertDate !CreationDate!  
        echo LastModified :
        Call:ConvertDate !LastModified!
        echo ***************************
    )>>%OutPut%
)
EndLocal
if Exist %OutPut% Start "" %OutPut%
Exit /b
::**********************************************************************
Rem Function for Converting WMI Dates to a Standard Date-Time Format
:ConvertDate <Date>
(
    echo WScript.echo WMIDateStringToDate("%~1"^)
    echo Function WMIDateStringToDate(Mydate^)
    echo  WMIDateStringToDate = CDate(Mid(Mydate, 5, 2^) ^& "/" ^& _
    echo  Mid(Mydate, 7, 2^) ^& "/" ^& Left(Mydate, 4^) _
    echo  ^& " " ^& Mid (Mydate, 9, 2^) ^& ":" ^& _
    echo  Mid(Mydate, 11, 2^) ^& ":" ^& Mid(Mydate,13, 2^)^)
    echo End Function
)>"%~n0.vbs"
cscript /nologo "%~n0.vbs" "%~1"
Del "%~n0.vbs"
exit /b
::**********************************************************************

关于Windows Management Instrumentation 命令行 WMIC 批量提取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36859654/

相关文章:

java - 以定时任务方式运行JAVA程序

command-line - 如何在批处理文件中循环匹配通配符的文件

windows - .dll 和 .exe 的区别?

windows - 如何安装和使用 WinPcap?

windows - 如何在 Windows 批处理程序中获取管道中命令的错误级别?

linux - 如何正确添加前缀和后缀双引号?

bash - 在 Bash 中一次循环两个变量

bash - 如何以编程方式复制终端内容?

visual-studio - Visual Studio 。从命令行发布项目

windows - 如何查看我的程序堆栈跟踪?