我有一个问题。
我想从不同的PC中提取 - 从总是相同的路径(比方说D:\ Data或D :) - 来自扩展名为* .raw的文件的一些属性。
我想将一个txt或csv文件保存到另一个文件夹(比如网络文件夹K:\ Results),其中包含* raw文件的名称及其属性。
我主要感兴趣的是" Created"," Last Modified"," Last Accessed"。
我刚刚发现了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 :(得分:0)
假设您的*.raw
文件夹中有一些c:\temp
个文件,那么
您可以这样尝试:
@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
::**********************************************************************