我正在尝试在第59行的文本文件中插入今天的date。我该怎么做?
第59行有30个空格,然后像这样读取。 运行PowerShell脚本后,它将更改date,因此它必须是不查找文件date的内容。
Rep.Setproperty "Date","1/1/2013"
我只想将date更改为运行PowerShell脚本的date。 这个文本文件不是PowerShell脚本。
这是必须每周运行,没有用户交互。 这就是为什么我们需要通过PowerShell脚本进行date更改。 我查了你提供的链接,但我卡住了,这就是为什么我张贴在这里。 有两件事我仍然可以做。
这是我迄今为止。
$date = Get-Date $CMSReport = Get-content C:\reports\CMSReport.acsauto $CMSReport | ForEach-Object { if ($_.Readcount 59) { $_ -replace '\w+','Rep.SetProperty "Dates","2/4/2013"' } else { $_ } } | Set-Content testCMS.acsauto
很明显,“2/4/2013”将不得不用一些variables来改变,这些variables会取得命令运行的date。
为什么使用PowerShell进行一次性string匹配/replace? 如果你需要在一堆文件中重复执行这些操作,或者在一个文件中多次replace,那么情况就不一样了,但是这样做可能需要更长的时间才能使脚本执行此操作,而不是一次性更换(甚至二十个)。
无论如何,你需要在这里find:
装入你的场景:
$infile = "C:\myinputfile.txt" $outfile = "C:\myoutputfile.txt" $content = Get-Content -Path $infile $content[58] = $content[58] -replace "([1-9]|0[1-9]|1[012])[- /.]([1-9]|0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d", [datetime]::Today.ToShortDateString() $content | Set-Content $outfile