Скопируйте измененную дату из filename.zip и перезапишите существующую дату в файле .ini - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть файл с измененной датой 4 сентября 2018 .

Я хочу скопировать эту дату изменения файла и вставить ее в файл .ini.

Перед пастой:

lastdbupdate=20180822 //YYYYMMDD  

После пасты:

lastdbupdate=20180904  

По сути, это чтение / копирование измененной даты из файла на моем флэш-накопителе E:\my folder\dbupdates\mynewdb.zip, а затем открытие файла .ini, поиск строки и ее замена на модифицированную структуру даты (изменяющуюся со структуры даты по умолчанию на YYYYMMDD в C:\programs\program name\data\info.ini.

Я нашел несколько записей при получении даты и для копирования / вставки текста, но я не смог заставить их работать вместе!

Есть ли шанс, что у кого-нибудь есть идея или предложение статьи, которые касаются обоих?

1 Ответ

0 голосов
/ 06 сентября 2018
  • Сначала проверьте наличие обоих файлов
  • , затем получите свойства zip и отформатируйте .LastWriteTime до yyyyMMdd
  • используйте RegEx с нулевой длиной положительное выражение за для замены lastdbupdate

## Q:\Test\2018\09\06\SO_52196744.ps1

$dbzip   = 'E:\my folder\dbupdates\mynewdb.zip'
$inifile = 'C:\programs\program name\data\info.ini'

If ((Test-Path $dbzip) -and (Test-Path $iniFile)){
    $lastdbupdate=(Get-Item $dbzip).LastWriteTime.ToString('yyyyMMdd')
    (Get-Content $iniFile) -replace "(?<=^lastdbupdate=)\d{8}.*$",$lastdbupdate |
     Set-Content $iniFile
}
...