PowerShell中获取文件创建时间输出字面量,如何获取实际时间?
解决PowerShell获取文件创建时间的问题
问题出在两个关键地方:
- 你在
foreach循环里用了$_,但这里的迭代变量是$build,$_在这个循环语境下不指代当前的文件对象 - 直接在双引号里写
$_.CreationTime时,PowerShell只会解析$开头的部分,后面的.CreationTime会被当作普通字符串输出
修正后的代码如下:
$builds = Get-ChildItem "$path_to_directory" *.zip | Where-Object {$_.CreationTime -gt $lastBuildDeployedTimestamp} foreach($build in $builds) { $path_to_directory # 直接输出变量,无需双引号 $build.CreationTime # 直接访问文件对象的CreationTime属性 # 如果非要用双引号包裹输出,得用子表达式让PowerShell完整解析: # "$($build.CreationTime)" }
简单说明:
- 在
foreach循环内部,每个遍历到的文件对象是$build,所以要通过$build.CreationTime获取它的创建时间 - 要是需要把创建时间嵌入到字符串里,必须用
$()把属性访问表达式包裹起来,这样PowerShell才会执行表达式并把结果插入到字符串中
内容的提问来源于stack exchange,提问作者CleanBold
相关产品推荐
相关产品推荐

