我正在编写一个windows powershell脚本来打开/编辑文本文件。
它有许多记录,每条记录都以逗号分隔值(csv)排序:
我想要实现的步骤:
我刚刚编写了这段代码:
$path = "C:\PSFiles\Rec_File_001.txt"
$Filedata = Get-Content $path
$Record01 = $Filedata[0].split(",")
$Record01Date = $Record01[3]
$Record01CurrentDate = Get-Date -format yyMMdd
$Record01 -replace $Record01Date, $Record01CurrentDate
Set-Content $path
请对此有何帮助?
答案 0 :(得分:1)
您在这里有多个问题。我将解决标题中显示的那个 - 替换文本文件中的文本。
剧本:
# current date in a new format
$CurrentDate = Get-Date -format yyMMdd
#replace old format
Get-Content -ReadCount 500 -Path C:\PSFiles\Rec_File_001.txt | % {$_ -replace "(0[1-9]|1[012])\d{1,2}(0[1-9]|[12][0-9]|3[01])", "$CurrentDate"} | Set-Content -Path C:\PSFiles_output\Rec_File_001.txt
这需要使用日期格式Date(mmYYdd)
的正则表达式并将其换成新的格式。选项-ReadCount
限制了一次通过管道的行数。
答案 1 :(得分:0)
Import-CSV $Path -header text1, text2, text3, date, text5 |
Select text1, text2, text3, @{Name="Date"; Expression={Get-Date -format yyMMdd}}, text5 |
ConvertTo-Csv -NoTypeInformation |
Select-Object -Skip 1 |
Set-Content $Path
或者:
$data = Import-CSV $Path -header text1, text2, text3, date, text5
$data | ForEach {"Date" = Get-Date -format yyMMdd}
$data | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Set-Content $Path
答案 2 :(得分:0)
希望这会有所帮助。在powershell中运行以下命令:
$(Get-Item ath/filename.extensionfilename).creationtime=$(get-date "2019-10-15T15:45:12.2723844+01:00")
$(Get-Item C:\temp\log\txt.log).creationtime=$(get-date "2019-10-15T15:45:12.2723844+01:00")
这是Microsoft的文章,解释了如何修改文件https://devblogs.microsoft.com/scripting/use-powershell-to-modify-file-access-time-stamps/的时间戳
下面是该文章中的表格,显示了涉及您可以修改的时间的属性。
+----------------+----------+-----------------+---------------------------+
| Name | Member | Type | Definition |
+----------------+----------+-----------------+---------------------------+
| CreationTime | Property | System.DateTime | CreationTime {get;set;} |
| LastAccessTime | Property | System.DateTime | LastAccessTime {get;set;} |
| LastWriteTime | Property | System.DateTime | LastWriteTime {get;set;} |
+----------------+----------+-----------------+---------------------------+