我想比较一下我从xml文件获得的日期和#34; lastwritetime"一个文件。 Powershell ISE对两者都显示相同,但我的if不会返回true。我尝试了一些日期时间演员阵容,但这也没有帮助。
我的XML:
<meta>
<log path="D:\tomcat.log">
<lastwrite>08/03/2015 13:44:09</lastwrite>
</log>
</meta>
我的powershell脚本:
[xml]$log_meta = Get-Content "D:\log_meta.xml"
$node = $log_meta.meta.log | where {$_.path -eq "D:\tomcat.log"}
(ls "D:\tomcat.log").LastWriteTime
$node.lastwrite
if((ls "D:\tomcat.log").LastWriteTime -eq $node.lastwrite){
"Date and time is the same"
}
第三行显示:(德国日期格式)
Montag, 3. August 2015 13:44:09
第四行显示:
08/03/2015 13:44:09
但我的if不会返回true。
答案 0 :(得分:2)
$ node.lastwrite是一个字符串(您从文件中读取它),而LastWriteTime是DateTime。您需要将它们转换为日期,或两者都转换为DateTime。
如果将两者都转换为DateTime,则需要将文件时间舍入到最接近的秒。在NTFS上,文件时间精度为100纳秒。
将文件时间转换为相同格式的字符串可能更好。
$writeTimeString = (ls "D:\tomcat.log").LastWriteTime.ToString("MM/dd/yy HH:mm:ss")
答案 1 :(得分:0)
好的,它现在正在工作。我把两个都换成了字符串。
[XPST0003] Unexpected end of query: 'insert attribut...'.
我希望我可以使用约会时间,但也许这是不可能的。谢谢!