从filename.zip复制修改的日期并覆盖.ini文件中的现有日期

时间:2018-09-06 04:54:45

标签: file powershell ini file-writing

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

我要复制文件的修改日期并将其粘贴到<tr> <td colspan="5" align="center"> <form method="POST" action="cart.php" class="form-group"> <label for="comment">Order comments </label> <textarea name="comment" id="comment" class="form-control" placeholder="Please enter any special instructions for the order" required> <?php if (isset($_SESSION['comment'])) { echo $_SESSION['comment']; } ?> </textarea> <br> <label for="order_date">Delivery date</label> <input type="date" class="form-control" style="max-width: 20%;" name="order_date" id="date" required></input> <br /> <input type="submit" name="place_order" id="place_order" class="btn logo-green" value="Place Order" /> </form> </td> </tr> 文件中。

粘贴前:

.ini

粘贴后:

lastdbupdate=20180822 //YYYYMMDD  

从本质上讲,它是从拇指驱动器lastdbupdate=20180904 上的文件中读取/复制修改后的日期,然后打开一个E:\my folder\dbupdates\mynewdb.zip文件,找到字符串,然后将其替换为MODIFIED日期结构(从.ini中的默认日期结构为YYYYMMDD

我已经找到了一些有关获取日期以及复制/粘贴文本的条目,但是我一直无法使它们协同工作!

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

1 个答案:

答案 0 :(得分:0)

  • 首先检查两个文件是否存在
  • 然后获取zip的属性,并将.LastWriteTime格式化为yyyyMMdd
  • 使用长度为零的positive lookbehind断言的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
}