我在Powershell中是一个非常新的人,希望有人能帮助我:
我在C:\tmp\appFiles.appcache
中有一个文件
其中包含:
CACHE MANIFEST
Version: 2019-01-04T00:48:08.3070330+01:00
Use from network if available
NETWORK:
我需要编写一个将日期和时间更改为实际时间的脚本
例如:
CACHE MANIFEST
Version: 2019-01-19T13:55:08.3070330+01:00
Use from network if available
NETWORK:
谢谢您的帮助。
答案 0 :(得分:1)
或使用Select-String和“往返日期/时间模式” 'o'
参见Standard Date and Time Format Strings
$path = 'C:\tmp\appFiles.appcache\YOUR-FILENAME'
$content = Get-Content $path
$match = $content | Select-String -Pattern 'Version:' -SimpleMatch -List
if ($match) {
$content[$match.LineNumber - 1] = "Version: {0}" -f (Get-Date -Format 'o')
$content | Set-Content -Path $path
}
答案 1 :(得分:0)
这确实不是脚本编写服务。但是,如果您答应我,您将学到更多有关PowerShell的知识,并开始尝试理解以下脚本,我将为您提供帮助。提示:学习PowerShell时,应使用PowerShell ISE,然后按cntrl + R,这样您就可以更好地编写和理解PowerShell。
$path = "path to your file"
$content = Get-Content $path
$date = Get-Date -Format s
foreach($row in $content){
if($row -match "Version:"){
$newContent = $content.replace("$row","Version: $date+01:00")
}
}
$newContent | Set-Content $path
上面的脚本获取给定文件的内容,然后获取当前日期。然后,它将在内容的每一行中搜索数学文本。找到后,它将用我们创建的自定义行替换该特定行。然后,我们获取新内容并将其设置为我们指定的文件。您基本上是用这种方式覆盖了整个文件!
答案 2 :(得分:0)
## Q:\Test\2019\01\18\SO_54255102.ps1
$File = 'C:\tmp\appFiles.appcache'
$Date = Get-Date -f 'yyyy-MM-dd\THH:mm:ss.fffffffzzzzz' # or simply (Get-Date -f o)
(Get-Content $File) -Replace '(?<=^Version: ).*$',$Date | Set-Content $File