powershell - PowerShell Get-Date 在移动的文件上写入不正确的日期
问题描述
我正在创建一个 PowerShell 循环,它将监视和记录特定文件夹中的“新”文件。当在文件夹中找到新文件时,我拆分文件名的一部分并将该部分和文件的日期写入文本文档。在第二遍时,脚本应该读取日志,如果文件的名称和日期已经存在,则应该跳过写入。
我的问题是,当新文件放入文件夹时,脚本会写入文件的拆分名称和当前日期/时间。在第二遍时,它会写入文件的拆分名称和修改日期,这正是我想要的。我试过同时使用Get-Date ($file).LastWriteTime
and $file | Get-Date
(见第 25 和 26 行)。两个 cmdlet 在第一次传递时提供当前日期,在第二次传递时提供实际修改/创建日期。
也许这不是监视文件夹的最佳方式。我对这种性质的建议持开放态度。欢迎任何建议!
#start loop
while($true){
#clear $asin
$asin = ""
#address $outputFolder and identify $outputFiles
$outputFiles = GCI -Path $outputFolder -Filter *.jpg -Recurse
#isolate the $asin from each $outputFile
foreach($file in $outputFiles){
$asin = $file.name
$asin = $asin.split('.')[0]
Write-Host 'this is the asin'
echo $asin
#isolate the $asin + $variant from each $outputFile
$variant = $file.name
$variant = $variant.split('.')[1]
$variant = $asin + '.' + $variant
Write-Host 'this is the variant'
echo $variant
#get file $creation (reads 'Date modified' not 'Date created' as 'Date created' changes when files move)
$creation = Get-Date ($file).LastWriteTime
#$creation = $file | Get-Date
echo $creation
#read if $list contains $asin or not
$listContents = Get-Content $list
if($listContents -notcontains $asin + ' ' + $creation){
Write-Host "Preparing to log $asin"
$asin + ' ' + $creation | Add-Content $list
#log asin at this point
} elseif ($listContents -contains $asin + ' ' + $creation){
Write-Host "$asin has already been logged"
}
}
}
解决方案
推荐阅读
- python - 如何在 excel/csv 表中插入音频文件(wav/ogg/mp3),以便我可以使用 panda 在 python 中加载它?
- python - 如果 JSON 文件有多个值,如何将 JSON 文件转换为 SQL lite 数据库?
- javascript - 使用 Ajax 发送请求。尽管使用了 preventDefault,页面正在重新加载
- flutter - flutter mapbox_gl:没有缩放事件
- laravel - Laravel 在部署时更新本地化文件
- docker - 如何使用 Keycloak jboss/keycloak:15.0.2 docker 镜像?
- javascript - 如何修复 Uncaught (in promise) DOMException: The user aborted a request SoundCloud widget Api
- r - 卡住使用 mirt 包中的 multipleGroup 和 DIF 函数
- python - 使用 PolynomialFeatures 类的 get_feature_names() 方法确定您计算了哪些系数
- mongoose - 为什么模式方法不能是 ES6 箭头函数