我试图在不更新LastModifiedDate属性的情况下向文件中添加文本字符串。是否可以在修改文件之前将属性设置为变量,然后将属性重置为变量中存储的值?我正在尝试在包含成百上千个文件的文件夹上执行此操作。
我认为我有正确的语法来添加所需的文本行并将最后修改的日期设置为变量,但是我不确定在每个循环中需要使用哪种语法来重置修改的日期。< / p>
Get-ChildItem C:\Temp -Name *.bnf* -Recurse |Out-file C:\Temp\list.txt
cd C:\Temp
$FileList = Get-Content C:\Temp\Grammarlist.txt
(Get-Content $FileList) |
Foreach-Object {
$temp = Get-Item $_.LastWriteTime}
$_ # send the current line to output
if ($_ -match "// Version")
{
#Add Lines after the selected pattern
"// Release 19.1.4"
}
} | Set-Content $FileList
答案 0 :(得分:2)
我建议使用文件的读/写LastWriteTime
属性。
改编自ss64.com:
$oldDate = (dir test.txt).LastWriteTime
echo asdf >> test.txt
(dir test.txt).LastWriteTime = $oldDate