substituindo uma linha ou data em um arquivo de texto usando o powershell

1

Estou tentando inserir a data de hoje em um arquivo de texto na linha 59. Como faço isso?

A linha 59 tem 30 espaços e depois é lida como esta. Depois que o script do PowerShell for executado, ele alterará a data para que seja algo que não procure a data no arquivo.

                                Rep.Setproperty "Date","1/1/2013"

Quero apenas alterar a data para a data em que executo o script do PowerShell. O arquivo de texto não é um script do PowerShell.

Isso é algo que precisa ser executado toda semana sem interação do usuário. é por isso que precisamos da alteração da data por um script do PowerShell. Eu tinha procurado o link que você forneceu, mas estou preso, é por isso que postei aqui. há duas coisas que ainda posso fazer.

  1. Substitua a data na linha 59
  2. Envie a data de hoje para substituir o que estava lá.

isto é o que eu tenho até agora.

$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

obviamente, o "2/4/2013" terá que ser alterado com algum tipo de variável que levará a data de quando o comando for executado.

    
por Carlos 04.02.2013 / 20:47

1 resposta

0

Por que usar o PowerShell para uma correspondência / substituição de string única? Se isso é algo que você precisa fazer repetidamente em vários arquivos ou substituir várias vezes em um único arquivo, isso é diferente, mas provavelmente levaria mais tempo para fazer o script fazer isso do que fazer um substituto único (ou mesmo vinte deles).

De qualquer forma, o que você precisa será encontrado aqui:

link

Inscrito no seu cenário:

$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
    
por 04.02.2013 / 21:15