我正在尝试将文本文件用于锁定机制。
想法是,一旦 powershell 脚本运行并持有文件句柄,其他进程将无法打开它,将等到它释放。
$file = [System.io.File]::Open('D:\file.lock', 'Open', 'Read', 'None')
$reader = New-Object System.IO.StreamReader($file)
$text = $reader.ReadToEnd()
$text | Out-File $file
$reader.Close()
$file.Close()
锁定效果很好,但我希望一旦脚本释放文件,它应该执行“触摸”操作,以便更改文件的上次修改日期
我的问题代码是$text | Out-File $file
因为它没有做任何事情
我怎样才能保存文件,或者做一个“触摸”
最佳答案
这可能就像手动设置最后写入时间一样简单:
(ls $file).LastWriteTime=(get-date)
编辑: 你可以使用它(但当我们打开它进行写入时无法读取文件内容)
$file = [System.io.File]::Open('c:\temp\test.txt', 'append', 'Write', 'None')
$enc = [system.Text.Encoding]::UTF8
$msg = "This is a test"
$data = $enc.GetBytes($msg)
$file.write($data,0,$data.length)
$file.Close()
关于PowerShell 打开一个只写文件(用于锁定)并执行 'touch' 以更改文件的上次修改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26156715/