【问题标题】:Copy modified date from filename.zip and overwrite existing date in .ini file从 filename.zip 复制修改日期并覆盖 .ini 文件中的现有日期
【发布时间】:2019-02-11 06:50:02
【问题描述】:

我有一个修改日期为2018 年 9 月 4 日的文件。

我想复制文件的修改日期并将其粘贴到.ini 文件中。

粘贴前:

lastdbupdate=20180822 //YYYYMMDD  

粘贴后:

lastdbupdate=20180904  

本质上,它是从我的拇指驱动器E:\my folder\dbupdates\mynewdb.zip 上的文件中读取/复制修改后的日期,然后打开一个.ini 文件,找到字符串,并将其替换为修改后的日期结构(从默认日期结构更改为YYYYMMDDC:\programs\program name\data\info.ini.

我找到了几个关于获取日期和复制/粘贴文本的条目,但我无法让它们一起工作!

有没有人有解决这两个问题的想法或文章建议?

【问题讨论】:

标签: file powershell ini file-writing


【解决方案1】:
  • 首先检查两个文件是否存在
  • 然后获取zip的属性并将.LastWriteTime格式化为yyyyMMdd
  • 使用长度为零的正则表达式positive lookbehind 断言替换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
}

【讨论】:

  • 对此我非常感谢!它看起来与我拼凑的完全不同,但这意味着我可能真的走错了路!当我回到家时,我会运行这个并发布结果!感谢您抽出宝贵时间!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
  • 2015-02-19
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
相关资源
最近更新 更多