Файл изменений Powershell - PullRequest
0 голосов
/ 18 января 2019

Я очень новичок в 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:

Спасибо за любую помощь.

Ответы [ 3 ]

0 голосов
/ 18 января 2019

Или используйте Select-String и 'шаблон даты / времени кругового обхода' 'o'
См. Стандартные строки формата даты и времени

$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
}
0 голосов
/ 18 января 2019
  • Чтобы получить полную строку даты в соответствии с заданным форматом с частями в секундах и смещением UTC
  • заменить строку версии на положительный взгляд за RegEx
  • сохранить под тем же именем файла (сначала требуется чтение в память)

## 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
0 голосов
/ 18 января 2019

Это действительно не сервис написания скриптов. Но если вы пообещаете мне, что узнаете больше о 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

Приведенный выше скрипт получает содержимое данного файла, затем принимает текущую дату. Затем он ищет в каждой строке содержимого текст для отображения. Когда он найден, он заменяет эту конкретную строку созданной нами пользовательской. Затем мы берем новый контент и устанавливаем его в указанный файл. Вы в основном перезаписываете весь файл таким образом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...