2016-04-26 45 views
2

我有一个问题。Windows Management Instrumentation命令行WMIC批量提取属性

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

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

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

我刚刚发现的WMIC命令,我想使用它,但我真的不知道该怎么做,我可以从该PC上运行的脚本:

1 - 它得到的名单*.raw文件D:\

2 - 它从所有这些Caption,CreationDate,LastModified提取物...

3 - 它节省了我K:\Results\

具有特定名称的列表 有人能帮我吗?

我想了解更多有关此Windows Management Instrumentation命令行,但我仍然在:

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

,直到我解决我的问题可以采取的年龄。

预先感谢您。

+0

有关Windows这个社区心不是......其对** **编程。 WMIC是用于WMI接口的专有微软工具,基本上,您正在询问命令行参数帮助。只是说。 – specializt

+0

嗨Specializt,只是我认为这是关于Windows。我会将其更改为“大家好”,并更好地定义标签。 – Beginner

+0

那么,要添加标签“命令行参数”,你需要1500点声望。我将在34年后再次尝试。 – Beginner

回答

0

假设你有你的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 
::********************************************************************** 
+0

我已经把4 * .raws放在C:\ temp中,并且得到一个空的Result.txt表格:!文件! 创建日期: LastModified: *************************** ***************************我该做什么错了? – Beginner

+0

@Beginner你应该在主脚本中写入'Set Ext = raw'而不是'Set Ext = *。raw',然后再发布给你,它适用于我! – Hackoo

+0

嗨Hackoo,谢谢,但它仍然不适合我,可能是其他一些初学者错误。有一些禁忌只是使用类似于:wmic /output:F:\Log5.csv datafile其中(drive^=“F:”和路径^ =“\\ Temp \\”AND Extension^=“raw”)get Caption,CreationDate,LastModified /格式:“%WINDIR%\ System32 \ wbem \ en-us \ csv” – Beginner