Я пытаюсь вставить сегодняшнюю дату в текстовый файл в строку 59. Как мне это сделать?
Строка 59 имеет примерно 30 пробелов и читается так. После запуска сценария PowerShell он изменит дату, поэтому она не должна искать дату в файле.
Rep.Setproperty "Date","1/1/2013"
Я просто хочу изменить дату на дату запуска сценария PowerShell. Текстовый файл это не сценарий PowerShell, поэтому.
Это то, что нужно запускать каждую неделю без взаимодействия с пользователем. поэтому нам нужно изменение даты с помощью сценария PowerShell. Я просмотрел предоставленную вами ссылку, но застрял, поэтому разместил здесь. я еще могу сделать две вещи.
это то, что у меня есть до сих пор.
$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» нужно будет заменить какой-то переменной, которая будет принимать дату выполнения команды.
Зачем использовать PowerShell для одноразового сопоставления / замены строки? Если это что-то, что вам нужно делать несколько раз в группе файлов или заменять несколько раз в одном файле, тогда это другое, но, вероятно, вам потребуется больше времени, чтобы скрипт сделал это, чем выполнение одноразовой замены (а то и двадцать).
В любом случае то, что вам нужно, можно найти здесь:
Встраивается в ваш сценарий:
$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